Galera,
Nao estou conseguindo mapear um relacionamento n:n usando hibernate + annotation.
Quando percorro os grupos (list) e dos grupos tento pegar os servidores da um erro no sql, ou seja, o hibernate ta montando a query errada, o inner join ta saindo errado e com isso os campos também.
Alguém pode me ajudar??
Abraços
Segue em anexo minha estrutura
tenho a seguinte estrutura no BD:
tablea: grupo_servidor
camos: id_servidor, id_grupo
tablea: servidores
camos: id, nome, ip
tablea: grupo
camos: id, nome
codigo:
@Entity
@Table(name=“servidores”)
public class Servidor implements Serializable {
private int id;
private String nome;
private String ip;
private List grupos;
public boolean equals(Object obj) …
public int hashCode() …
public String toString() …
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@ManyToMany(fetch=FetchType.LAZY,
mappedBy=“servidores”,
cascade={CascadeType.PERSIST, CascadeType.MERGE},
targetEntity=dominio.Grupo.class)
public List getGrupos() {
return grupos;
}
public void setGrupos(List grupos) {
this.grupos = grupos;
}
@Entity
public class Grupo {
private int id;
private String nome;
private List servidores;
public boolean equals(Object obj)…
public int hashCode() …
public String toString()…
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@ManyToMany(fetch=FetchType.LAZY,
targetEntity=dominio.Servidor.class,
cascade={CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name=“grupo_servidor”,
joinColumns={@JoinColumn(name=“id_servidor”)},
inverseJoinColumns={@JoinColumn(name=“id_grupo”)})
public List getServidores() {
return servidores;
}
public void setServidores(List servidores) {
this.servidores = servidores;
}
}