我們使用Spring MVC,Jackson for json,Hibernate ORM。我們需要添加前端驗證。我遇到了Hibernate驗證器。hibernate驗證器,json模式生成和使用常見約束條件
我們有一組使用JPA註釋的Domain類[DO類]。 我們有另一套爲Json綁定註解的POJO類[DTO類]。
我們要實現基礎設施,執行以下操作:
- DTO類指DO類約束[適用],這樣的事實是同一個地方。
- 再次通過重用JPA批註生成json模式。
- 驗證其餘呼叫的輸入。
例如,不要使用以下:
PersonDTO{
@NotNull
@Size(min=2, max=60)
private String firstName;
}
如何:
PersonDTO{
@MapsTo(com.xyz.domain.PersonDO.firstName.Size) // referring to the JPA annotation
private String firstName;
}
,然後自定義驗證數字出來的約束通過查看JPA註釋堅持。
我列出的策略是一種典型的方法嗎?任何反饋或意見表示讚賞。你能指點我相關的任何文章? 謝謝。
謝謝你Gunnar。指針是有幫助的。我已經實現了動態添加約束的邏輯。我使用了下面的代碼片段,但是,實際的驗證沒有看到我添加的約束條件。我認爲應用程序通過spring bean的hibernate validator配置與我增強的不同。如何通過LocalValidatorFactoryBean將約束添加到Spring使用的配置中?謝謝你的幫助。 – user19937
HibernateValidatorConfiguration配置= Validation.byProvider(HibernateValidator.class).configure(); ConstraintMapping m = configuration.createConstraintMapping(); (Class c:dtoClasses){ addConstraintsToClass(c,m,handled); } Validator validator = configuration.addMapping(m).buildValidatorFactory()。getValidator(); – user19937
我不確定這是否可能與LocalValidatorFactoryBean。您可以禁用它,而是註冊您的自定義配置的Validator bean。 – Gunnar