из спящего режима в mysql, проблема отображения значений по умолчанию - PullRequest
3 голосов
/ 17 апреля 2011

Файл отображения hibernate xml не поддерживает значение по умолчанию. Поэтому, когда я пытаюсь создать столбец со значением по умолчанию в mysql, я запускаю метод hibernate save () без установки значения столбца. значение по умолчанию не может быть сгенерировано.

Я провел поиск. согласно этому посту: https://forums.hibernate.org/viewtopic.php?t=171&highlight=default+value&sid=84a014fd93dd9b680afc606f616ca4f6 он сказал, что спящий режим не поддерживает значение по умолчанию. мы можем использовать триггер вместо этого.

Как мы можем это сделать, кроме триггера? и как мы можем сделать это с помощью триггера

ОК, я пытаюсь сделать больше поиска, я нахожу ответ:

ibernate не поддерживает значения по умолчанию, вы должны либо управлять этим с помощью триггеров базы данных, либо назначить значения по умолчанию в своем домене.

Но если я назначу значения по умолчанию в моем домене, как говорит конструктор, есть ли у нас какой-то недостаток?

ТНХ!

1 Ответ

3 голосов
/ 17 апреля 2011

Я предлагаю использовать конструктор для установки состояния ваших объектов по умолчанию.Hibernate это ORM.Основная философия заключается в том, что вы сохраняете свои объекты .Использование значений по умолчанию на стороне СУБД может подорвать всю концепцию, позволяя сохранять объекты в недопустимых состояниях.(Предоставляя возможность значениям поля пропускать методы setter ).

С другой стороны, когда вы создаете экземпляр объекта, его поля уже инициируются (для нулевого значения, нуля или пустой строки).и т. д.) Hibernate не сможет угадать, хотите ли вы сохранить фактический ноль или ноль или вместо этого использовать значение по умолчанию БД.

Когда вы говорите о значениях по умолчанию на уровне СУБДЯ полагаю, вы думаете о примитивных ценностях.Нет абсолютно никакого недостатка в инициализации примитивных полей на стороне Java (внутри конструктора или по объявлению).

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