Hibernate Annotations - PK multipla, declarar e relacionar

Olá a base de dados de varios sistemas aqui da empresa tem 2 tabelas relacionadas sendo que uma delas tem uma chave tripla, ex:

table classe_mat
COD_CLAS_MAT_GRP PK
COD_CLAS_MAT_SGP PK
COD_CLAS_MAT_SSG PK

table materiais
COD_MATERIAL PK
COD_CLAS_MAT_GRP FK
COD_CLAS_MAT_SGP FK
COD_CLAS_MAT_SSG FK

como mapear essa chave tripla usando hibernate annotations e depois como eu faço para mapear o relacionamento, sendo que uma classe_mat tem varios materiais, e um materia só pode está em uma classe_mat?

obs: olhe os exemplos da documentação, só que para mapear chave multipla tem que ter uma outra classe com os atributos da pk, achei um negocio meio sem sentido.
E sobre o relacionamento desse tipo não encontrei nada na documentacao.

Grato,
Thiago

Sim, você deve criar uma classe id só para a chave, pois o hibernate annotations ainda não suporta múltiplas anotações @Id. Mas já existem feature requests sobre isso, ver:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-12
http://opensource.atlassian.com/projects/hibernate/browse/ANN-435

Sobre o relacionamento, olhe na documentação

2.2.6. Mapping composite primary and foreign keys

PS: Votar nos bugs depois de se cadastrar no Jira, ajuda o bug a ganhar uma atenção especial mais rapidamente :slight_smile:

É eu consegui fazer la no trabalho, mas achei uma solução muito tosca, parece armengue.

criei uma classe, com os campos do id e deixei ela como @Emb

E depois na classe concreta mesmo, eu botei um atributo da classe que eu criei com os atributos id, e declarei com a annotation @id. porém é muito feio isso, para acessar a @id tem um passo a +, até o entendimento não fica muito claro.

E sobre a foreing key, é só declarar varios joincolumn dentro de um joincolumns.

Sim, qual o bug que é para votar? afinal isso é um bug ou falta de funcionalidade?

Uma solução interessante é usar o recurso de reverse engineering do Hibernate tools, que gera automaticamente as classes anotadas e também as classes de Id quando necessário.

Alguns consideram um bug, outros simplesmente falta da funcionalidade mesmo. Eu considero bug, por que mesmo não suportando múltiplas anotações “@Id”, ele não lança nenhuma exceção quando está lendo a classe :slight_smile:

http://opensource.atlassian.com/projects/hibernate/browse/ANN-12

É o mais recomendado pra votar, pois possui já possui mais votos :wink:

opa plentz obrigado pelas dicas, vou votar lá sim.

Sobre o hibernate tools eu conheco, porém como estou usando o hibernate anotations pela primeira vez eu prefiro não usa-lo para primeiro aprender manualmente.

vlw.

Thiago, estou passando pelo mesmo problema aki na empresa.
Vc poderia me passar a sua solucao??
minha tabela eh identica a sua.