Я хочу настроить спящий объект для обработки внешних ключей, которые имеют значения по умолчанию на уровне базы данных.У меня есть объект User со столбцом emailFormat, который является ключом в таблице типов emailformat.В emailFormat таблицы User задано значение по умолчанию на уровне базы данных, а также ограничение not-null.
Мой файл гибернации:
<class
name="User"
table="USER"
>
...
<many-to-one
name="emailFormat"
class="EmailFormat"
not-null="true"
>
<column name="EMAILFORMATID" />
</many-to-one>
Я хотел бы создать новый объект User без настройки emailFormat и сделать так, чтобы Hibernate распознал, что это сгенерированное значение.Вместо этого Hibernate пытается вставить 'null' для этого значения, и вставка завершается неудачей.
ORA-01400: невозможно вставить NULL в ("EMAILFORMATID")
Документы для сгенерированных свойств, похоже,указать, что то, что я хочу, невозможно, потому что: 1.) похоже, что может быть сгенерировано только свойство, а не ключ для отношения многие-к-одному;и 2.) в документах говорится:
«Свойства, помеченные как сгенерированные, должны быть также не вставляемыми и не обновляемыми.»
Что не будет работать для меня, потому что пока БД генерируетзначения по умолчанию, мне нужно иногда иметь возможность изменять (переопределять) их.
Иногда я сталкивался с ошибками в документах или с недостатком документации, имеющим какой-то недокументированный или плохо документированный способ сделать что-то.Я искал в Интернете, не найдя ничего, но я надеюсь, что кто-то еще знает лучше.
Любой способ сделать то, что я хочу?