Boa tarde galera.
Estou com um problema. Eu tenho uma classe (Usuario) que vai conter duas colecoes da classe Mensagem. Na classe Mensagem eu tenho que ter duas chaves estrangeiras de Usuario que vai significar: remetente e destinatario. Eu fiz esse mapeamento e pelo SQL ele cria os campos porem nem inseri e nem consta.
A minha entity Mensagem tem que ter duas chaves estrangeiras de Usuario sendo que uma é de remetente e outra de destinatario.
Veja o meu mapeamento e por favor me mostrem como eu posso fazer isso. Vou colocar o meu mapeamento resumido
Classe Usuario.
@Entity
@Table(name="Usuarios", schema="MGFSaga")
@SequenceGenerator(name="SEQ_USUARIO", sequenceName="SEQ_USUARIO")
public class UsuarioVO implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_USUARIO")
@Column(name="idUsuario")
private Long idUsuarioVO;
@OneToMany(mappedBy="destinatarioVO", fetch=FetchType.LAZY)
@Cascade(CascadeType.SAVE_UPDATE)
private Set<MensagemVO> mensagemEnviadaVO;
@OneToMany(mappedBy="remetenteVO", fetch=FetchType.LAZY)
@Cascade(CascadeType.SAVE_UPDATE)
private Set<MensagemVO> mensagemRecebidaVO;
}
Classe Mensagem
@Entity
@Table(name="Mensagens", schema="MGFSaga")
@SequenceGenerator(name="SEQ_MENSAGEM", sequenceName="SEQ_MENSAGEM")
public class MensagemVO implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_MENSAGEM")
@Column(name="idMensagem")
private Long idMensagemVO;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idDestinatario", insertable=true, updatable=true, nullable= false)
private UsuarioVO destinatarioVO;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idRemetente", insertable=true, updatable=true, nullable = false)
private UsuarioVO remetenteVO;
}
Para abranger o que eu quero, o meu mapeamento esta correto? Obrigado!