我正在使用Hibernate Validator 4.0.2,Spring 3.0和Hibernate 3.3.2(据我所知,是JPA2之前的版本)作为JPA 1提供程序。
我发现将Validator集成到MVC层很容易(这是可行的),但是看不到如何将验证器自动集成到JPA entityManager(JPA 1)中。
基本上,我有一些实体将保留下来,但它们不是来自Web层,因此尚未经过验证。我想要一种通过验证器预持久运行它们的巧妙方法。
有一个简单的方法吗?我知道,如果我使用的是JPA 2提供程序(如发布时的Hibernate 3.5),它将几乎是自动的。那就是我要找的东西。
您需要编写一个实体侦听器,并在上触发验证@PrePersist,@PreUpdate甚至@PreRemove(有有效的用例)。有关 代码示例,请参见使用JPA 1.0进行Bean验证。
@PrePersist
@PreUpdate
@PreRemove