Bom dia pessoal!
Tenhou uma dúvida eu tenho 3 tabelas “usuario”, “grupousuario” e “usuariogrupousuario”, onde “usuariogrupousuario” tem apenas um id(pk), idusuario(fk) e idgrupousuario(fk), eu fiz o mapeamento das duas classes: usuario e grupousuario, mais o problema é que não gera a PK na tabela usuariogrupousuario.
Alguém poderia me ajudar?
Abaixo os mapeamentos:
UsuarioVO.java
@Entity
@Table(name = "usuario")
@NamedQueries({
@NamedQuery(name = "UsuarioVO.findAll", query = "SELECT u FROM UsuarioVO u"),
@NamedQuery(name = "UsuarioVO.findById", query = "SELECT u FROM UsuarioVO u WHERE u.id = :id")
})
public class UsuarioVO extends VO {
private static final long serialVersionUID = 1232131232L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id", columnDefinition = "serial")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Size(max = 100)
@Column(name = "login")
private String login;
@Size(max = 100)
@ManyToMany(fetch = FetchType.LAZY, targetEntity = GrupoUsuarioVO.class)
@JoinTable(name = "usuariogrupousuario",
joinColumns = {
@JoinColumn(name = "idusuario", columnDefinition = "integer")
},
inverseJoinColumns = {
@JoinColumn(name = "idgrupousuario", columnDefinition = "integer")
})
private List<GrupoUsuarioVO> grupoUsuarios = new ArrayList<GrupoUsuarioVO>();
public UsuarioVO() {
}
public UsuarioVO(Integer id) {
this.id = id;
}
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public List<GrupoUsuarioVO> getGrupoUsuarios() {
return grupoUsuarios;
}
public void setGrupoUsuarios(List<GrupoUsuarioVO> grupoUsuarios) {
this.grupoUsuarios = grupoUsuarios;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof UsuarioVO)) {
return false;
}
UsuarioVO other = (UsuarioVO) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "UsuarioVO[ id=" + id + " ]";
}
}
GrupoUsuarioVO.java
@Entity
@Table(name = "grupousuario")
@NamedQueries({
@NamedQuery(name = "GrupoUsuarioVO.findAll", query = "SELECT g FROM GrupoUsuarioVO g"),
@NamedQuery(name = "GrupoUsuarioVO.findById", query = "SELECT g FROM GrupoUsuarioVO g WHERE g.id = :id")
})
public class GrupoUsuarioVO extends VO {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "id", columnDefinition = "serial")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Size(max = 100)
@Column(name = "descricao")
private String descricao;
@ManyToMany(fetch = FetchType.LAZY, targetEntity = UsuarioVO.class)
@JoinTable(name = "usuariogrupousuario",
joinColumns = {
@JoinColumn(name = "idgrupousuario", columnDefinition = "integer")
},
inverseJoinColumns = {
@JoinColumn(name = "idusuario", columnDefinition = "integer")
})
private List<UsuarioVO> usuarios;
public GrupoUsuarioVO() {
}
public GrupoUsuarioVO(Integer id) {
this.id = id;
}
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public List<UsuarioVO> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<UsuarioVO> usuarios) {
this.usuarios = usuarios;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof GrupoUsuarioVO)) {
return false;
}
GrupoUsuarioVO other = (GrupoUsuarioVO) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "logic.intranet.vo.GrupoUsuarioVO[ id=" + id + " ]";
}
}