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