Аннотация @Column не изменяет допускаемое значение NULL, когда я изменяю свойство NULL с false на true

По ошибке я установил для свойства аннотации @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, но мне интересно, почему свойство аннотации столбца не работает после создания таблицы.

stackoverflow.com/questions/42135114/…
Davide 09.04.2021 13:11
0
1
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

От: Как свойство 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?

BuSaeed 09.04.2021 13:19

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

Davide 09.04.2021 14:08

Инструмент создания схемы ORM Hibernate в основном предназначен для помощи при создании базы данных в первый раз, прототипировании, тестировании и проверке. Это не то, на что можно полагаться при производственном использовании. Для этого лучше использовать специальные инструменты: docs.jboss.org/hibernate/orm/5.4/userguide/html_single/…

Davide 09.04.2021 14:12

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