Não faça isso pelo amor de Deus… você já tem um atributo único que é o campo ‘ID’, não precisa fazer chave composta com outro campo…
Falo por experiência, chaves compostas no Hibernate são uma péssima idéia, evite se possível…
Se não for possível, podemos tentar te ajudar… mas faça de tudo pra não ter que usar isso! :roll:
G
guialeixo
ja importou as bibliotecas necessarias pro hibernate funcionar?
marcos1EM
As vezes não da para fugir das chaves compostas entao pesquise por @Embeddable
gismo
Existem tabelas que eu vou utilizar que possuem mais de uma chave e que não possuim um “id” que se auto incrementa, por isso eu “achei” que precisaria fazer isso.
marcelo.bellissimo
gismo:
Existem tabelas que eu vou utilizar que possuem mais de uma chave e que não possuim um “id” que se auto incrementa, por isso eu “achei” que precisaria fazer isso.
Veja bem… SEMPRE dá pra fugir de chaves compostas… como?
Se eu quiser, posso fazer uma constraint unique pros dois ou mais campos que eu quero que sejam a chave, e claro os mesmo não podem ser nulos… faça isso, e crie um campo, apenas pra armazenar o ID para que fique mais fácil pro Hibernate gerenciar, e tudo vai ser mais claro e fácil…
Nada de chaves compostas, nada de Embeddable, apenas a boa e velha chave primária simples…
edit: Se suas tabelas já existem, e elas não tem o campo pro ID, peça pra criar um… não custa nada, vai aumentar pouco o espaço consumido, e vai ser extremamente mais fácil pra você programar… não compensa poupar o minimo de espaço no banco e aumentar significativamente o tempo de desenvolvimento da aplicação… pelo menos esse é o meu ponto de vista…
marcos1EM
marcelo.bellissimo:
Veja bem… SEMPRE dá pra fugir de chaves compostas… como?
Se eu quiser, posso fazer uma constraint unique pros dois ou mais campos que eu quero que sejam a chave, e claro os mesmo não podem ser nulos… faça isso, e crie um campo, apenas pra armazenar o ID para que fique mais fácil pro Hibernate gerenciar, e tudo vai ser mais claro e fácil…
Nada de chaves compostas, nada de Embeddable, apenas a boa e velha chave primária simples…
edit: Se suas tabelas já existem, e elas não tem o campo pro ID, peça pra criar um… não custa nada, vai aumentar pouco o espaço consumido, e vai ser extremamente mais fácil pra você programar… não compensa poupar o minimo de espaço no banco e aumentar significativamente o tempo de desenvolvimento da aplicação… pelo menos esse é o meu ponto de vista…
Concordo que fica extremamente mais fácil programar sem utilizar chaves compostas, porém aqui na empresa, por exemplo, tivemos que fazer uma integração com um sistema legado, então não há possibilidade de alterar o relaciomento entre as tabelas apenas para termos menos trabalho ao programar, por isso ainda aconselho que caso precise trabalhar com chaves compostas pesquise sobreo o @Embeddable, aqui na empresa está funcionando perfeitamente, sem problemas… é logico que é mais custoso mas funciona.
marcelo.bellissimo
marcos1EM:
marcelo.bellissimo:
Veja bem… SEMPRE dá pra fugir de chaves compostas… como?
Se eu quiser, posso fazer uma constraint unique pros dois ou mais campos que eu quero que sejam a chave, e claro os mesmo não podem ser nulos… faça isso, e crie um campo, apenas pra armazenar o ID para que fique mais fácil pro Hibernate gerenciar, e tudo vai ser mais claro e fácil…
Nada de chaves compostas, nada de Embeddable, apenas a boa e velha chave primária simples…
edit: Se suas tabelas já existem, e elas não tem o campo pro ID, peça pra criar um… não custa nada, vai aumentar pouco o espaço consumido, e vai ser extremamente mais fácil pra você programar… não compensa poupar o minimo de espaço no banco e aumentar significativamente o tempo de desenvolvimento da aplicação… pelo menos esse é o meu ponto de vista…
Concordo que fica extremamente mais fácil programar sem utilizar chaves compostas, porém aqui na empresa, por exemplo, tivemos que fazer uma integração com um sistema legado, então não há possibilidade de alterar o relaciomento entre as tabelas apenas para termos menos trabalho ao programar, por isso ainda aconselho que caso precise trabalhar com chaves compostas pesquise sobreo o @Embeddable, aqui na empresa está funcionando perfeitamente, sem problemas… é logico que é mais custoso mas funciona.
Creio eu que esse seja o único caso… infelizmente ainda existem muitos desses casos de integração com sistemas legados… e realmente, não tem como fazer do jeito que eu falei…