У меня есть несколько аннотаций, которые работают, только @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";
}
}
Спасибо вам, ребята. Я частично взял свой код здесь spring.io/guides/gs/validating-form-input, он должен работать, но не знаю, почему это не так...




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