ola galera!
Estou tentando mapear esta classe aqui:
[code]public class Mensagem {
@Id
@GeneratedValue
@Column(name=“idMensagem”)
private Integer id;
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="idUsuario")
private Usuario Remetente;
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="idUsuario")
private Usuario Destinatario;
}[/code]
mas esta dando este erro quando tento adicionar uma nova mensagem.
[code]
Exception in thread “main” java.lang.ExceptionInInitializerError
at com.mensagem.core HibernateUtil.(HibernateUtil.java:22)
at com.mensagem.core.Teste.main(Teste.java:24)
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.mensagem.core.Mensagem column: idUsuario (should be mapped with insert=“false” update=“false”)
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:652)
at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:674)
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:696)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:450)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1102)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1287)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)
at com.mensagem.core.HibernateUtil.(HibernateUtil.java:18)
… 1 more
duvida no mapeamento no hibernate:[/code]
mas se eu colocar estas propriedade
na coluna
o hibernate vai deixar de adicionar os valore. Certo!?
se alguém puder me mandar uma dica eu agradeço.
obrigado e t+
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.mensagem.core.Mensagem column: idUsuario (should be mapped with insert="false" update="false")
de acordo com a exception, o erro aprece ser isso aí mesmo.
já testou inserir o insert-false?
Amigo,
eu nao manjo muito de anotation, entao talvez eu escreva bobeira… se escrever, ignore 
A sua tabela MENSAGEM possui remetente e destinatario. Entao, provavelmente, ela possui 2 FKs para Usuario. Correto?
Vou supor que essas FKs chamam, respectivamente: id_remetente e id_destinatario.
Em um mapeamento XML para hibernate, teriamos que indicar no elemento <many-to-one> esses identificadores, para instruir ao hibernate como manipular o mapeamento.
Trazendo isso para tua anotacao, seria algo assim:
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="id_remetente")
private Usuario Remetente;
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="id_destinatario")
private Usuario Destinatario;
Note que no @JoinColumn estou informando as FKs…
Espero ter ajudado…
entao galera segui o que vc falaram e ta vindo erro também, mas valeu pela atenção.
estou mandando as tabelas, talvez ajude a compreender o problema.
usuario
idusuario pk
nome
sobrenome
mensagem
idmensagem pk
idremetente fk -> idusuario
iddestinatario fk -> idusuario
mensagem
meu! eu não estou conseguindo mapear isto
sendo que idusuario esta relacionado com idrementente e iddestinatario
valeus e t+
sera que é melhor modelar as tabelas di novo :roll:
um help hermanos
Olá amigo,
qual erro está ocorrendo? Acredito que seu modelo de dados está coerente, e nao existe necessidade de altera-lo.
Mande o erro que posso tentar ajudar.
E ae Insônia blz.
Agora deu certo. Era o que vc tinha falado mesmo. Tinha colocado os names nos join errado.
obrigado pela ajuda. 