У меня было приложение Spring Boot 1.x, которое я перенес на Spring Boot 2.1.2.RELEASE. У меня были некоторые объекты JPA, аннотированные ограничениями javax.validation, как показано ниже:
@Entity
public class User {
@NotNull
private String username;
}
Это генерировало следующий ddl для MySQL:
create table user (username varchar(255) not null);
Теперь эти ограничения игнорируются, и я не понимаю, почему. У вас есть подсказки?





У меня возникла эта проблема 3 дня назад, и мне помогло следующее:
1) Остановить пружинный ботинок 2) Уничтожить базу данных 3) Перезапустите весеннюю загрузку, чтобы сгенерировать ее снова.
Я также пытался изменить аннотацию с @NotNull на @Column(nullable=false), но это не сработало.
Дайте мне знать, если это сработает и для вас!
На самом деле я добавил @Column(nullable=false) для каждого @NotNull (обратите внимание, добавляя, а не заменяя, поскольку я использовал эту аннотацию для проверки bean-компонента), и, похоже, это работает, но я не понимаю, почему это было отключено.
Поскольку аннотация Java Bean Validation не имеет ничего общего с JPA API и, следовательно, не переносима с точки зрения генерации схемы JPA, спросите себя, почему вы полагаетесь на такие специфичные для поставщика JPA материалы, когда JPA предоставляет свои собственные способы достижения того же.