我在Spring MVC应用程序中使用Hibernate验证器。 我在context.xml中配置它即使Hibernate Validator验证失败,Hibernate也会更新持久对象
<bean id="validator" class="com.mycompany.appname.validation.Validator" />
现在我用它在我的控制器,以验证不同的对象。 这对于瞬态对象是可以的,但持久对象怎么样?对于e.x:
我加载一个:
MyObject o = myDao.getById(someId);
o.setName(name);
o.setPhone(phone);
Set<ConstraintViolation<o>> violations= validator.validate(o);
在Hibernate更新它,即使验证此对象的失败!
我试图诠释的Validator
validate()
法
@PrePersist
@PreUpdate
@PreRemove
public <RT> Set<ConstraintViolation<RT>> validate(RT target){...}
但尽管如此,如果验证失败或者不更新不管。 如果验证失败,我不想抛出异常。
感谢您的建议。我意识到会话驱逐和回滚功能。我想在春季控制器中自动检查休眠以及手动,因为我想通知最终用户无效输入。 – braincell 2012-08-09 07:57:01