Создание ограничений внешнего ключа таблицы в базе данных с помощью JPA - PullRequest
0 голосов
/ 02 декабря 2018

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

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

Может кто-нибудь подтвердить, так ли это?

1 Ответ

0 голосов
/ 02 декабря 2018

В соответствии со спецификацией JPA 2.2 диспетчер персистентности должен создавать ограничения внешнего ключа.Например, в случае однозначного сопоставления:

Предполагая, что:

  • Объект A ссылается на один экземпляр объекта B.

  • Объект B ссылается на один экземпляр объекта A.

  • Объект A указан как владелец отношения.

Применяются следующие значения отображения по умолчанию:

  • Объект A сопоставлен с таблицей с именем A.

  • Объект B сопоставлен стаблица с именем B.

  • Таблица A содержит внешний ключ для таблицы B. Имя столбца внешнего ключа формируется как объединение следующего: имясвойство отношения или поле объекта A;имя столбца первичного ключа в таблице B. Столбец внешнего ключа имеет тот же тип, что и первичный ключ таблицы B, и для него существует ограничение уникального ключа.

...