【发布时间】:2017-10-20 14:04:14
【问题描述】:
我正在使用 Spring Boot 1.5.7、Spring JPA、Hibernate 验证、Spring Data REST、Spring HATEOAS。
我有一个像这样的简单 bean:
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
@NotBlank
private String name;
}
如您所见,我正在使用@NotBlank。根据 Hibernate 文档,应在 pre-persist 和 pre-update 时进行验证。
我创建了一个junit测试:
@Test(expected = ConstraintViolationException.class)
public void saveWithEmptyNameThrowsException() {
Person person = new Person();
person.setName("");
personRepository.save(person);
}
此测试运行良好,因此验证过程正确进行。相反,在这个测试用例中,验证不起作用:
@Test(expected = ConstraintViolationException.class)
public void saveWithEmptyNameThrowsException() {
Person person = new Person();
person.setName("Name");
personRepository.save(person);
person.setName("");
personRepository.save(person);
}
我找到了另一个similar question,但很遗憾没有任何回复。 为什么不对 update() 方法进行验证?解决问题的建议?
【问题讨论】:
标签: java spring hibernate spring-boot spring-validator