как обращаться с сущностями, которым не нужны аннотации @id - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть несколько классов в схеме, некоторые из них являются таблицами, у которых нет идентификаторов, потому что они используются в качестве таблиц ссылок / значений, таких как страна, пол, гражданский статус и т. Д., Но когда я пытаюсь запустить приложение, сервер приложений Glassfish не будет развертывать его, потому что он запрашивает поле с атрибутом @Id на моих объектах, которого у него обычно нет, потому что он в основном используется в качестве таблицы значений.

кроме создания поля id, что еще я могу сделать?

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

JPA не делает сущности без идентичности;JDO - единственная спецификация персистентности Java, поддерживающая эту концепцию.

С JPA одним из способов было бы добавить произвольный идентификатор (если один из столбцов уникален, тогда отлично, в противном случае добавьте новый (фиктивный) столбец для хранения «идентификатора»

0 голосов
/ 09 декабря 2011

@Id используется для маркировки первичного ключа.Обычно это суррогатный первичный ключ (т. Е. Произвольное число, идентифицирующее строку), но он также может быть естественным первичным ключом (т. Е. Любой столбец, используемый для ссылки на строки этой таблицы извне).

InВ вашем случае эти справочные таблицы, безусловно, имеют первичные ключи, и вам необходимо пометить соответствующие поля с помощью @Id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...