Как сделать отображение hibernate для таблицы или представления без первичного ключа

Возможный дубликат:
Hibernate и no PK

Кто-нибудь знает, как сделать сопоставление hibernate для таблицы или представления без первичного ключа?

Ответ 1

Не думайте, что Hibernate позволяет сопоставлять таблицу без первичного ключа... подумайте о том, как Hibernate будет выполнять обновления без столбца, который может однозначно идентифицировать строку.

Я предполагаю, что обход должен состоять в том, чтобы использовать составной ключ со всеми столбцами, но вам гораздо лучше добавить первичный ключ.

Ответ 2

Я бы сделал это только тогда, когда вы читаете данные (не записывая их). Когда у вас есть DB, как оракул, вы можете иметь такие выражения, как

select DOKUMENT.*, ROWID from DOKUMENT

→ и, таким образом, вы можете добавить этот оператор в сопоставление Hibernate:

<id column="ROWID" type="string" />

впоследствии, вы определяете все остальные столбцы как

<property...

Когда вы используете мастер обратного проектирования, вы можете

  • удалить тег составного ключа,
  • поиск и замена key-property для свойства и
  • вставить выше строки