Associação com hibernate annotations

Suponhamos que eu tenha a tabela:

Usuario


codUsuario (int PK)
codIdentificacao (int PK)

nome

Item


codItem (int PK)
descricao

E agora uma tabela associativa. Nessa tabela eu gostaria de ter o codUsuario e codItem. Observe que a tabela usuário tem 2 PK, e eu quero apenas a primeira PK na associativa.

ItemUsuario


codUsuario (FK)
codItem (FK)

data

Como eu faria esse mapeamento com hibernate annotations? Colocando apenas 1 PK da tabela usuário e a outra PK da tabela item na associativa.

Alguém pode ajudar?
kd o povo do hibernate…

Primeiro passo seria conhecer as anotações do Hibernate.

http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/

[ ]s,

Sei disso cara!
Já vi essa página. Porém não conseguiu esclarecer minha dúvida! Sei fazer vários tipos de mapeamento no hibernate, porém nesse caso explícito acima é que surgiu a dúvida!

Se eu quiser fazer o mapeamento acima com as 2 PK da tabela usuário como FK eu consigo! Quero fazer com apenas 1 PK como FK.

Já uso hibernate annotations.Apenas surgiu essa dúvida em uma necessidade agora…

Cristiano,

Posso estar falando besteira, até porque não conheço a sua regra, mas não ficaria estranho você estar referenciando apenas uma das PKs de uma determinada tabela?

Isso deixaria de garantir a unicidade da informação. Se você “casa” as informações com a metade de uma primary key, você não vai garantir o retorno de uma determinada informação.

Como disse, posso estar falando besteira, mas logicamente isso pode vir a te trazer problemas.

Abraço.

Entendo seu ponto de vista e até concordo com você. O problema é que me foi passado um banco de dados legado e ele está mapeado dessa forma!
Se eu pudesse gerá-lo do próprio hibernate seria ótimo! Mas já é um banco pronto! E ele esta modelado assim…

Já procurei em vários sites, no fórum do hibernate, livros e não encontrei nada que me pudesse ajudar…

:?

Cristiano,

Acho que se você tentar fazer isso que deseja, pelo Hibernate, não vai funcionar da maneira que você quer.
Ele tentará linkar as PKs e não encontrará uma consistência dessas informações.
Sendo assim, ele poderá retornar valores que não deseja, ou até mesmo alegar erro.
Não sei exatamente como seria o comportamento dele, pois nunca fiz nada parecido.

Abraço.