2012-07-12 127 views
0

我使用Spring Roo + jpa + hibernate和我想在我的應用程序中實現交叉驗證(同時驗證幾個字段)。在java中實現交叉驗證

我不知道如何去執行它。任何人都可以請建議我和/或指導我相關文件?

+1

你可以在這裏找到好的和完整的交叉字段驗證示例http://stackoverflow.com/questions/1972933/cross-field-validation-with-hibernate-validator-jsr-303 – masted 2012-07-13 08:07:35

回答

1

看看Hibernate驗證器,它允許實體驗證(使用註釋)。

http://www.hibernate.org/subprojects/validator.html

總之,你通過放置在他們之上Hibernate驗證/ JPA註解註釋你的領域限制。 (例如@Min(10))並使用以下代碼段來查找任何無效字段;

ValidatorFactory factory = Validation.byDefaultProvider().configure().traversableResolver(new CustomTraversableResolver()).buildValidatorFactory(); 
Validator validator = factory.getValidator(); 
Set<ConstraintViolation<BaseValidationObject>> constraintViolations = Validator.validate(myEntityToValidate); 

如果您需要驗證實體之間的特定關係,您可以編寫自定義驗證器以適應該需求。

+0

謝謝!我查看了Hibernate Validator文檔,並開始瞭解它。有一件事情我不是很瞭解:位於spring mvc應用程序中的bootstrapping位置在哪裏? – balteo 2012-07-12 13:07:15

+0

嗨Balteo,我相信這不需要,只需添加Hibernate驗證器罐,你應該很好去。如果遇到困難,請告訴我,我會提供更多深入的示例。 – Marius 2012-07-12 14:47:21

+0

感謝Marius的詳細回覆。 – balteo 2012-07-12 15:27:48