как установить значение по умолчанию для отношения в спящем режиме - PullRequest
0 голосов
/ 19 сентября 2011

Привет, я использую MYSQL и Hibernate и у меня есть таблица Customer со столбцом customer_type со значением по умолчанию 1, его внешний ключ в Customer, но первичный ключ в таблице CustomerType, найдите следующий код. В моем hbm-файле Customer я написал следующий код:

<many-to-one name="customerType" class="CustomerType" lazy="false">
    <column name="customer_type_id" not-null="true"/>
</many-to-one> 

Но столбец не является нулевым, и в моей таблице его значение по умолчанию равно 1. И я не устанавливаю этот объект при сохранении моего объекта Customer, потому что в таблице есть значение по умолчанию, но исключение свойстваviolationexception not null ссылается на нулевое значение Как я могу прийти через эту проблему и как установить значение по умолчанию для отношения в спящем режиме

Ответы [ 2 ]

0 голосов
/ 29 января 2016

Вы заставляете свое поле customer_type_id быть not-null , поэтому hibernate инициализирует значение самым низким значением.Если вы хотите установить для своего идентификатора значение по умолчанию, используйте приведенный ниже код в отображении спящего режима для класса CustomerType:

<propery name="customerTypeId" type="long" column="customer_type_id">
    <column=" name="customer_type_id" not-null="true" default="1000"/>
</property>
0 голосов
/ 19 сентября 2011
As per SQL default value will be set when you omit the column in insert script.

Он также работает с Hibernate, который в конечном итоге выполняет скрипт вставки, включая столбцы в соответствии с отображением в HBM.Один из подходов - создать объект для CustomerType со значениями по умолчанию.Затем установите то же самое для родительского объекта, пока вы сохраняете родительский объект, если это не установлено какой-либо из вашей бизнес-логики.Таким образом, эти данные сохраняются без каких-либо исключений.

Другой простой подход заключается в наборе сопоставления "многие к одному" insert='false' и отображении поля типа примитива для столбца customer_type_id и установки значения в 1.Таким образом, этот файл будет сохранен в БД для вашего столбца значений по умолчанию, при извлечении отношения будет загружен успешно.

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