Удалить поле NotNull из объекта гибернации

У меня есть какое-то поле в моем объекте гибернации, которое мне больше не нужно использовать, поэтому я удалил его из объекта. Проблема в том, что теперь, когда кто-то пытается сохранить новый объект сущности в db, возникает исключение, в котором говорится: «Поле '{OldField}' не имеет значения по умолчанию». Это связано с тем, что изменение объекта не влияет на MySql, а старое поле все еще там и хочет получить какое-то значение.

Я могу удалить старое поле из MySql, но я хочу знать, есть ли более элегантный способ справиться с этой ситуацией.

Спасибо!

Почему бы не изменить поле таблицы и не установить значение по умолчанию?

ernest_k 25.04.2018 13:55

Потому что это два шага, чтобы справиться с ситуацией. Я подумал о решении, которое, возможно, сделает поле нулевым в случае, если старое поле будет удалено из объекта гибернации (автоматически).

Yair Cohen 26.04.2018 09:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
167
1

Ответы 1

Вы можете использовать параметр значения по умолчанию в MySQL. Просто измените параметры запроса и значение по умолчанию.

ALTER TABLE <Table_Name> MODIFY COLUMN <Col_Name> <Data_Type> NOT NULL DEFAULT '0';

или вы можете включить значение по умолчанию как NULL

ALTER TABLE <Table_Name> MODIFY COLUMN <Col_Name> <Data_Type> DEFAULT NULL;

Есть ли способ добавить некоторую конфигурацию в спящий режим, которая сделает это автоматически?

Yair Cohen 26.04.2018 09:30

@YairCohen Да, вы можете установить значение по умолчанию, используя спящий режим. Пример: @Column (name = "Col_Name", nullable = false, columnDefinition = "big‌ int (20) default 0") public Long getColName () {return colName; }

Chamara Maduranga 27.04.2018 10:24

Другие вопросы по теме