Hibernate UniqueConstraint

6 respostas
J

Bom Tarde, estou com a seguinte duvida tenho uma TabelaA que tem Primary key composta(IDGRUPO,ID) e tambem tenho um campo que e UNIQUE(ID) tem como eu fazer anotacao @ManyToOne Tabela B relacionando com o indice UNIQUE da TabelaA como seria usando Hibernate Annotations .

Obrigado !!!
Joao Vitor

6 Respostas

Lucas_Cavalcanti

tenta usar a anotação @JoinColumn

J

Estou fazendo isto

@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="idordemsubitem",referencedColumnName="id",insertable=false,updatable=false)
	private ExpOrdemSubItem expordemsubitem;

e recebo a seguinte exception:

Caused by: org.hibernate.AnnotationException: referencedColumnNames(id) of br.com.tms.modelo.PrkExpOrdemSubItemEquipamento.id.expordemsubitem referencing br.com.tms.modelo.ExpOrdemSubItem not mapped to a single property
	at org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:180)
	at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:88)
	at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:435)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:309)
	at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
Lucas_Cavalcanti

isso pq a chave do outro cara é composta… não vai funcionar mesmo…

tenta @JoinColumns({@JoinColumn("…"), @JoinColumn("…")})
colocando todas as chaves

J

Lucas Cavalcanti:
isso pq a chave do outro cara é composta… não vai funcionar mesmo…

tenta @JoinColumns({@JoinColumn("…"), @JoinColumn("…")})
colocando todas as chaves

Isto sei que vai funcionar mas pela logica do banco de dados quando vc tem uma chave unique no banco deixa vc fazer foreign key desta chave para outra tabela certo nao tem outra forma sem ser esta.

Lucas_Cavalcanti

o hibernate não te ajuda tanto qdo tem chave composta… vc não deveria usar chave composta na verdade, ela não serve pra mta coisa

J

Ok entao obrigado pela dica.

Criado 11 de março de 2010
Ultima resposta 11 de mar. de 2010
Respostas 6
Participantes 2