По ошибке я установил для свойства аннотации @Column значение false, в то время как я намеревался установить его в значение true.
@Column(nullable = false)
private String title;
Я попытался изменить свойство на правда после создания таблицы, но в моей таблице оно не изменилось. Хотя в моем файле application.properties есть следующие строки:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Теперь, когда я пытаюсь создать новую запись, я получаю эту ошибку:
SQL Error: 1048, SQLState: 23000
Column 'title' cannot be null
Я знаю, что могу изменить значение NULL вручную через phpMyAdmin, но мне интересно, почему свойство аннотации столбца не работает после создания таблицы.
От: Как свойство spring.jpa.hibernate.ddl-auto точно работает в Spring?
The update operation for example will attempt to add new columns, constraints, etc but will never remove a column or constraint that may have existed previously but no longer does as part of the object model from a prior run.
В общем, инструмент генерации схемы в основном предназначен для прототипирования, тестирования и проверки. Дополнительные скрипты с использованием специальных инструментов - лучшее решение для производства.
Также есть обратите внимание на это в документации:
Although the automatic schema generation is very useful for testing and prototyping purposes, in a production environment, it’s much more flexible to manage the schema using incremental migration scripts.
Я не слишком хорошо знаком с этими типами инструментов, но, чтобы дать вам пример, Ликвибаза - это только первое, что приходит на ум.
Итак, теперь правильный способ изменить значение NULL - вручную через phpMyAdmin?
Да, вам нужно обновить базу данных вручную. Если вы не можете уронить его и воссоздать
Инструмент создания схемы ORM Hibernate в основном предназначен для помощи при создании базы данных в первый раз, прототипировании, тестировании и проверке. Это не то, на что можно полагаться при производственном использовании. Для этого лучше использовать специальные инструменты: docs.jboss.org/hibernate/orm/5.4/userguide/html_single/…