1
I have the following problem: How will I persist in an associative table that has no class ?
I have two classes: Person and Time, where I want to make the relationship between people and teams. In this is created the Personal Time table, with the Person ID and Time ID.
My method Personal registration should include in this table the person ID and the Team ID.
Person:
@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;
}
}
Team:
@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 + "]";
}
}
Necessary because it is providing the DAO classes of these two or the project in the complete GIT.