Всякий раз, когда вы сохраняете новый объект, он вставляет «0» вместо неинициализированного примитивного типа (что соответствует стандартным значениям инициализации Java для примитивов).Это должно быть то же самое с внешними ключами, что означает, что OpenJPA должен будет генерировать недопустимые внешние ключи (с идентификатором «0», который с точки зрения БД является абсолютно правильным).
Итак, есть толькоопция:
-nullableAsObject/-no <true/t | false/f>:
By default, all non-foreign key columns are mapped to primitives
, но, как уже отмечалось, она действительна только для не-FK.