En utilisant Hibernate Validator avec JPA et Spring
-
18-09-2019 - |
Question
J'utilise Hibernate Validator 4.0.2, Spring 3.0 et Hibernate 3.3.2 (qui, si je comprends bien, est pré-JPA2) en tant que fournisseur JPA 1.
Je l'ai trouvé facile d'intégrer le Validator dans la couche MVC (il fonctionne), mais ne peut pas voir comment intégrer le validateur automatiquement dans l'Assemblée parlementaire paritaire entityManager (JPA 1).
En fait, j'ai des entités qui seront persistaient, mais qui ne vient pas de la couche Web et ont donc pas encore été validées. Je voudrais une belle façon de les exécuter à travers le validateur pré-persistent.
Y at-il un moyen facile de faire cela? Je suis conscient que si je travaillais avec un fournisseur JPA 2 (comme Hibernate 3.5 quand il est libéré), il serait presque automatique. C'est à peu près ce que je cherche.
La solution
Vous devez écrire un écouteur d'entité et de déclencher la validation sur @PrePersist
, @PreUpdate
et même @PreRemove
(il y a des cas d'utilisation valable pour cela). Voir Bean Validation avec JPA 1.0 pour un exemple de code.