Usando o Validador de Hibernato com JPA e Primavera
-
18-09-2019 - |
Pergunta
Estou usando o Hibernate Validator 4.0.2, Spring 3.0 e Hibernate 3.3.2 (que, como eu o entendo, é pré-JPA2) como um provedor JPA 1.
Achei fácil integrar o validador na camada MVC (apenas funciona), mas não consigo ver como integrar o validador automaticamente no JPA EntityManager (JPA 1).
Basicamente, tenho algumas entidades que serão persistidas, mas que não vêm da camada da web e, portanto, ainda não foram validadas. Eu gostaria de uma maneira interessante de executá-los através do pré-persistência do validador.
Existe uma maneira fácil de fazer isso? Estou ciente de que, se eu estava usando um provedor JPA 2 (como o Hibernate 3.5 quando é lançado), seria quase automático. Isso é aproximadamente o que estou procurando.
Solução
Você precisa escrever um ouvinte de entidade e acionar a validação em @PrePersist
, @PreUpdate
e até mesmo @PreRemove
(Existem casos de uso válidos para isso). Ver Validação de feijão com JPA 1.0 Para uma amostra de código.