我在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