Почему аннотация NotNull не работает Spring boot

У меня есть несколько аннотаций, которые работают, только @NotNull не работает. Когда я пытаюсь сохранить контакт с пустым именем, он сохраняется. При необходимости могу загрузить файл просмотра.
Вот мой класс сущности (только часть с аннотацией @NotNull).

@Entity

контакт общественного класса {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;

@NotNull
private String name;

}

Вот класс контроллера:

@Controller

открытый класс ContactController {

@Autowired
private ContactRepository contactRepository;

@GetMapping("/addContact")
public String addContact(Model model) {
    model.addAttribute("contact", new Contact());
    return "addContact";
}

@PostMapping("/add")
public String add(@ModelAttribute @Valid Contact contact, BindingResult bindingResult) {

    if (bindingResult.hasErrors()) {
        return "addContact";
    }
    contactRepository.save(contact);
    return "addContact";
}

}

Пустая строка не равна нулю, поэтому, если вы не хотите использовать пустую строку в качестве name, используйте вместо нее @NotEmpty или @NotBlank.

Piotr Podraza 09.02.2019 23:45

Спасибо вам, ребята. Я частично взял свой код здесь spring.io/guides/gs/validating-form-input, он должен работать, но не знаю, почему это не так...

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

Ответы 1

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

Как говорится в комментарии, вместо этого используйте аннотацию @NotBlank. Пустая строка не является нулевой — например, String s = "". @NotBlank потребует хотя бы один непробельный символ.

Вот javadoc:

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