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




Вы можете использовать параметр значения по умолчанию в 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;
Есть ли способ добавить некоторую конфигурацию в спящий режим, которая сделает это автоматически?
@YairCohen Да, вы можете установить значение по умолчанию, используя спящий режим. Пример: @Column (name = "Col_Name", nullable = false, columnDefinition = "big int (20) default 0") public Long getColName () {return colName; }
Почему бы не изменить поле таблицы и не установить значение по умолчанию?