/ / como fazer o mapeamento de hibernação para tabela ou exibição sem uma chave primária [duplicada] - java, hibernate, jdbc

como fazer o mapeamento de hibernação para tabela ou exibição sem uma chave primária [duplicado] - java, hibernate, jdbc

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 № 1

Nã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

  1. remova a tag de chave composta,
  2. pesquisar e substituir propriedade-chave por propriedade e
  3. insira a linha acima