Duvida no mapeamento do hibernate

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 :slight_smile:

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. :smiley: