Boa noite. Tenho uma tabela DEPENDENTES que armazena valores de chave primária da tabela BENEFICIARIOS onde DEPENDENTES tem os campos DEPENDENTE_ID e MASTER_ID, obviamente para cadastro de dependentes dos beneficiários. Como sou iniciante no Hibernate tenho a seguinte dúvida: É possível mapear uma classe que não tenha chave primária? Esse esquema que estou fazendo no meu banco de dados é uma boa prática?
Abraços.
O ideal é que você sempre utilize chaves primarias em suas tabelas.
Mesmo se for apenas uma tabela que vai conter um registro é bom colocar uma chave primária. Isso como uma pratica do banco de dados.
Agora pelo o Hibernate, acho que não é possível mapear uma tabela sem uma chave primaria.
Mas voce tem a chave primaria composta (DEPENDENTE_ID + MASTER_ID). Pesquisa sobre composite keys com Hibernate. Eu particularmente só uso chave composta para casos many to many (onde na tabela existem somente relacionamentos), mas se a AD te embarreirar nao tem jeito.
http://www.google.com.br/search?redir_esc=&redir_esc=&hl=pt-BR&client=ms-android-samsung&q=composite%20key%20hibernate
se eu entendi bem
Olhando assim
me parece um relacionamento
@ManyToMany ? certo?
ai vc pode escolher se ele vai ser Unidirecional ou bidirecional
vc vai usar o @JoinTable
onde o nome da tabela vc vai definir e é a que vai armazenar os ids DEPENDENTE_ID e MASTER_ID
procure por @JoinTable relacionamento @ManyToMany
Sim. MAAAAAS, toda entidade precisa ter um campo anotado com @ID… TODA.
Ou seja, mesmo que a tabela não tenha um campo auto incremento de ID, será necessário que a entidade tenha algum campo anotado com ID.