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