Olá pessoal,
Tenho um relacionamento de N : M entre duas entidades.
Sou novo na utilização do hibernate e segui as dicas deste site, que inclusive encontrei aqui no GUJ:
http://thiagoprocaci.blogspot.com/2009/04/mapeamento-objeto-relacional-com.html
Seguindo a mesma lógica descrita no blog, não estou conseguindo persistir a lista de serviços associada aos usuários. Qual a forma correta para persistir os dados do relacionamento? Está dando a seguinte mensagem para mim:
Criei as classes seguindo a mesma lógica que ele criou o relacionamento entre Professor e Turma. No meu caso é um relacionamento de Usuário com Serviço.
OBS: ignorei o resto dos atributos e métodos getters e setters.
[code]
public abstract class Usuario implements Serializable {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "usuario")
private List<UsuarioServico> usuarioServico;
}[/code]
[code]
public class Servico implements Serializable {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "servico")
private List<UsuarioServico> usuarioServico;
}[/code]
[code]
public class UsuarioServico implements Serializable {
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "idUsuario", column = @Column(name = "IDUSUARIO", nullable = false)),
@AttributeOverride(name = "idServico", column = @Column(name = "IDSERVICO", nullable = false)) })
private Id idUsuarioServico;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idUsuario", nullable = false, insertable = false, updatable = false)
private Usuario usuario;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idServico", nullable = false, insertable = false, updatable = false)
private Servico servico;
@Embeddable
public static class Id implements Serializable {
@Column(name = "idUsuario", nullable = false)
private Long idUsuario;
@Column(name = "idServico", nullable = false)
private Long idServico;
public Long getIdUsuario() {
return this.idUsuario;
}
public void setIdUsuario(Long idturma) {
this.idUsuario = idturma;
}
public Long getIdServico() {
return this.idServico;
}
public void setIdServico(Long idprofessor) {
this.idServico = idprofessor;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Id other = (Id) obj;
if (idServico != other.idServico)
return false;
if (idUsuario != other.idUsuario)
return false;
return true;
}
}
}[/code]
Agradeço antecipadamente quem puder me ajudar!
Valeu!