Использование Hibernate Validator с JPA и Spring
Я использую Hibernate Validator 4.0.2, Spring 3.0 и Hibernate 3.3.2 (который, как я понимаю, до JPA2) в качестве поставщика JPA 1.
Я обнаружил, что легко интегрировать валидатор в слой MVC (он просто работает), но не могу понять, как автоматически интегрировать валидатор в JPA entityManager (JPA 1).
По сути, у меня есть некоторые сущности, которые будут сохраняться, но не будут поступать из веб-слоя и поэтому еще не были проверены. Я хотел бы аккуратный способ пропустить их через валидатор заранее.
Есть ли простой способ сделать это? Я знаю, что если бы я использовал провайдера JPA 2 (например, Hibernate 3.5, когда он был выпущен), это было бы почти автоматически. Это примерно то, что я ищу.
1 ответ
Вам нужно написать прослушиватель сущности и запустить проверку на @PrePersist
, @PreUpdate
и даже @PreRemove
(для этого есть действительный вариант использования). См. Bean Validation с JPA 1.0 для примера кода.