Fala ae galerinha do mal! ultimamente estou com uma boa dor de cabeça em um relacionamento Many-To-Many com os Id @embedded, eu tenho o relacionamento entre Usuario e Ocorrencias gerando a minha tabela OcorrenciaUsuarios, eu consigo adicionar porem excluir ta complicado…
Usuario
@OneToMany(orphanRemoval=true,fetch= FetchType.LAZY,mappedBy="ocorrenciaUsuarioPK.usuario")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
private List<OcorrenciaUsuario> ocorrenciasUsuarios = new ArrayList<OcorrenciaUsuario>();
Ocorrencia
@OneToMany(orphanRemoval=true,fetch = FetchType.LAZY, mappedBy = "ocorrenciaComponentePK.ocorrencia")
@Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
private List<OcorrenciaComponente> ocorrenciaComponentes = new ArrayList<OcorrenciaComponente>();
OcorrenciaUsuario
@Entity
public class OcorrenciaUsuario implements Serializable {
@EmbeddedId
private OcorrenciaUsuarioPK ocorrenciaUsuarioPK = new OcorrenciaUsuarioPK();
@Transient
private Ocorrencia ocorrencia;
@Transient
private Usuario usuario;
public Ocorrencia getOcorrencia() {
return ocorrenciaUsuarioPK.getOcorrencia();
}
public Usuario getUsuario() {
return ocorrenciaUsuarioPK.getUsuario();
}
public void setOcorrencia(Ocorrencia ocorrencia) {
ocorrenciaUsuarioPK.setOcorrencia(ocorrencia);
}
public void setUsuario(Usuario usuario) {
ocorrenciaUsuarioPK.setUsuario(usuario);
}
public OcorrenciaUsuarioPK getOcorrenciaUsuarioPK() {
return ocorrenciaUsuarioPK;
}
public void setOcorrenciaUsuarioPK(OcorrenciaUsuarioPK ocorrenciaUsuarioPK) {
this.ocorrenciaUsuarioPK = ocorrenciaUsuarioPK;
}
}
OcorrenciaUsuarioPK
@Embeddable
@Table(schema = "teste2")
public class OcorrenciaUsuarioPK implements Serializable {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
@JoinColumn(name = "username")
private Usuario usuario;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
@JoinColumn(name = "id")
private Ocorrencia ocorrencia;
public Ocorrencia getOcorrencia() {
return ocorrencia;
}
public void setOcorrencia(Ocorrencia ocorrencia) {
this.ocorrencia = ocorrencia;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final OcorrenciaUsuarioPK other = (OcorrenciaUsuarioPK) obj;
if (this.ocorrencia != other.ocorrencia && (this.ocorrencia == null || !this.ocorrencia.equals(other.ocorrencia))) {
return false;
}
if (this.usuario != other.usuario && (this.usuario == null || !this.usuario.equals(other.usuario))) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 3;
hash = 47 * hash + (this.ocorrencia != null ? this.ocorrencia.hashCode() : 0);
hash = 47 * hash + (this.usuario != null ? this.usuario.hashCode() : 0);
return hash;
}
}
Alguém pode me ajudar??? to ficando louco ja…