我在 Spring MVC 应用程序中使用 Hibernate Validator。我在 context.xml 中配置了它
<bean id="validator" class="com.mycompany.appname.validation.Validator" />
现在我在我的控制器中使用它来验证不同的对象。瞬态对象没问题,但是持久对象呢?例如:
我加载一个:
MyObject o = myDao.getById(someId);
o.setName(name);
o.setPhone(phone);
Set<ConstraintViolation<o>> violations= validator.validate(o);
即使此对象的验证失败,Hibernate 也会更新它!
我试图用 with 注释validate()
方法Validator
@PrePersist
@PreUpdate
@PreRemove
public <RT> Set<ConstraintViolation<RT>> validate(RT target){...}
但无论验证是否失败,它仍然会更新。如果验证失败,我不想抛出异常。