jpa websphere идентификатор объекта несуществующие ошибки - PullRequest
0 голосов
/ 19 марта 2012

Добрый вечер. Когда я пытаюсь создать объекты jpa, используя соединение с базой данных, я получаю некоторые исключения. Что-то об id не существует. Я подозреваю, что это связано с тем, что в некоторых таблицах нет первичного ключа. Потому что, когда я прохожу каждую сущность и даю ей первичный ключ, ошибка очищается. Как я могу создавать сущности на таблицах, которые не имеют первичных ключей? Я использую WebSphere Integration Developer (WID) кстати.

1 Ответ

1 голос
/ 19 марта 2012

У всех сущностей есть Id, то есть как они работают - или, точнее, как указано в спецификации. Если в базе данных есть таблицы, которые вы хотите отобразить на объекты, и у таблиц нет первичного ключа, вам доступны несколько опций.

  • Добавить сгенерированный Id (управляемый JPA или DB) в таблицу - рекомендуется, если у вас есть такая свобода.
  • Используйте пару существующих столбцов в таблице в качестве идентификатора сущности (выбирая наименьшее число, необходимое для того, чтобы идентификатор стал уникальным).
  • Используйте все столбцы, даже если есть теоретическая вероятность того, что их комбинация не будет уникальной (может испортить таблицу / базу данных, поэтому следует соблюдать осторожность даже в слоях Java, чтобы этого не произошло)
  • ... может быть, есть и другие альтернативы, о которых я не могу думать сейчас

Должно быть довольно легко найти информацию о том, как сделать альтернативу 2 и 3 с помощью поиска JPA и CompositeKey.

Удачи

...