Поддерживает ли JPA отображение @OneToMany между объектами без ограничения внешнего ключа в базе данных? - PullRequest
3 голосов
/ 22 февраля 2011

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

Поддерживает ли JPA отображение @OneToMany (двунаправленное или однонаправленное), еслидочерняя таблица не имеет ограничения внешнего ключа для соответствующего столбца?

1 Ответ

1 голос
/ 22 февраля 2011

Краткий ответ: да .

Длинный: действительно ли JPA заботится о внешних ключах, если база данных уже существует? Если мы оставим задачу создания схемы базы данных провайдеру JPA, она создаст внешние ключи, и это хорошо. Но если JPA работает с существующей базой данных, он заботится только о существовании столбцов внешнего ключа и столбцов первичного ключа для создания правильных объединений. Внешние ключи не нужны.

Фактически, когда я работал с Hibernate, у нас была устаревшая база данных, использующая тип short для столбца внешнего ключа, чтобы указывать на первичный ключ int в другой таблице. Не могло быть никакого внешнего ключа, но пока мы не использовали опцию validate hbm2ddl, Hibernate как поставщик JPA работал просто отлично, игнорируя несоответствие типов, не говоря уже об отсутствии внешних ключей.

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