Hibernate - Mapear classe que não tem uma chave primária

4 respostas
J

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.

4 Respostas

H

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.

J

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

T

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

H

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.

Criado 31 de janeiro de 2013
Ultima resposta 1 de fev. de 2013
Respostas 4
Participantes 5