Duplicar Possível:
Hibernate e não PK
Alguém sabe como fazer o mapeamento de hibernação para tabela ou exibição sem uma chave primária?
Respostas:
10 para resposta № 1Não pense que o Hibernate permite mapear uma tabela sem uma chave primária ... pense em como o Hibernate executaria atualizações sem uma coluna que pudesse identificar exclusivamente uma linha.
Eu acho que uma alternativa seria usar uma chave composta com todas as colunas, mas é melhor adicionar uma chave primária.
5 para resposta № 2
Eu faria isso somente quando você estiver lendo dados (não escrevendo). Quando você tem um DB como o oracle, você pode ter declarações como
select DOKUMENT.*, ROWID from DOKUMENT
→ e assim, você pode adicionar esta declaração no mapeamento do Hibernate:
<id column="ROWID" type="string" />
posteriormente, você define todas as outras colunas como
<property...
Quando você usa o assistente de engenharia reversa, você pode
- remova a tag de chave composta,
- pesquisar e substituir propriedade-chave por propriedade e
- insira a linha acima