Estou com o seguinte problema: Como vou persistir em uma tabela associativa que não possui classe ?
Possuo duas classes: Pessoa e Time, onde desejo fazer o relacionamento entre pessoas e times. Nisso e criado a tabela Pessoa_Time, com o ID de pessoa e ID de Time.
Objetivo: Meu método CadastrarPessoaTime deve incluir nessa tabela Pessoa_Time o ID da pessoa e o ID do Time.
Pessoa:
@Entity
public class Pessoa implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column (name="id_Pessoa")
private Integer id;
@Column()
private String nomeUsuario;
@Column()
private String senhaUsuario;
@Column()
private String nomeCompleto;
@Column()
private String email;
@Column()
private Integer idade;
@ManyToMany
@JoinTable(name="Pessoa_Time",joinColumns={@JoinColumn(name="id_pessoa")},
inverseJoinColumns={@JoinColumn(name="id_time")})
private List<Time> listaTimes;
public Pessoa (){}
public Pessoa (Pessoa pessoa){
this.id = pessoa.getId();
this.nomeUsuario = pessoa.getNomeUsuario();
this.senhaUsuario = pessoa.getSenhaUsuario();
this.nomeCompleto = pessoa.getNomeCompleto();
this.email = pessoa.getEmail();
this.idade = pessoa.getIdade();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String nomeUsuario) {
this.nomeUsuario = nomeUsuario;
}
public String getNomeCompleto() {
return nomeCompleto;
}
public void setNomeCompleto(String nomeCompleto) {
this.nomeCompleto = nomeCompleto;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
public String getSenhaUsuario() {
return senhaUsuario;
}
public void setSenhaUsuario(String senhaUsuario) {
this.senhaUsuario = senhaUsuario;
}
public List<Time> getListaTimes() {
return listaTimes;
}
public void setListaTimes(List<Time> listaTimes) {
this.listaTimes = listaTimes;
}
}
Time:
@Entity
public class Time implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column (name="id_Time")
private int id;
@Column(nullable=false)
private String nome;
@Column(nullable=false)
private String senhaTime;
@ManyToMany(mappedBy="listaTimes")
private List<Pessoa> listaPessoas;
@ManyToMany(mappedBy="listaTimes")
private List<Campeonato> listaCampeonatos;
public Time(){}
public Time(Time time){
this.id = time.getId();
this.nome = time.getNome();
this.senhaTime = time.getSenhaTime();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public List<Pessoa> getListaPessoas() {
return listaPessoas;
}
public void setListaPessoas(List<Pessoa> listaPessoas) {
this.listaPessoas = listaPessoas;
}
public String getSenhaTime() {
return senhaTime;
}
public void setSenhaTime(String senhaTime) {
this.senhaTime = senhaTime;
}
public List<Campeonato> getListaCampeonatos() {
return listaCampeonatos;
}
public void setListaCampeonatos(List<Campeonato> listaCampeonatos) {
this.listaCampeonatos = listaCampeonatos;
}
@Override
public String toString() {
return "Time [id=" + id + ", nome=" + nome + ", senhaTime=" + senhaTime + ", listaPessoas=" + listaPessoas
+ ", listaCampeonatos=" + listaCampeonatos + "]";
}
}
Casso necessário, posto estar disponibilizando as classes de DAO dessas duas ou o projeto no GIT completo.