3.2.2.12. Migração para o Hibernate Validator 4


Sumário

O Hibernate Validator 4.x é uma base de código completamente nova que implementa JSR 303 - Bean Validation. O processo de migração do Validator 3.x para 4.x é bastante simples, mas existem algumas alterações que devem ser realizadas quando migrar seu aplicativo.

Procedimento 3.17. É possível que tenha que executar uma ou mais das seguintes tarefas

  1. Acesse o ValidatorFactory padrão

    O JBoss EAP 6 conecta um ValidatorFactory padrão ao contexto JNDI sob o nome java:comp/ValidatorFactory.
  2. Compreenda a validação disparada pelo ciclo de vida

    Quando usado em combinação com o Hibernate Core 4, a validação baseada no ciclo de vida é automaticamente habilitada pelo Hibernate Core.
    1. A validação ocorre nas operações INSERT, UPDATE e DELETE de entidade.
    2. É possível configurar os grupos a serem validados pelo tipo de evento usando as seguintes propriedades:
      • javax.persistence.validation.group.pre-persist,
      • javax.persistence.validation.group.pre-update
      • javax.persistence.validation.group.pre-remove.
      Os valores dessas propriedades são os nomes de classe inteiramente qualificados, separados por vírgula dos grupos a serem validados.
      Os grupos de validação são um novo recurso de especificação Bean Validation. Caso não queira tirar proveito das vantagens desse novo recurso, você não precisa fazer alterações quando migrar para o Hibernate Validator 4.
    3. É possível desativar a validação baseada no ciclo de vida configurando a propriedade javax.persistence.validation.mode como none. Outros valores válidos para esta propriedade são auto (padrão), callback e ddl.
  3. Configure seu aplicativo para usar validação manual

    1. Caso queira controlar manualmente a validação, é possível criar um Validator segundo uma das seguintes maneiras:
      • Crie uma instância Validator a partir de ValidatorFactory usando o método getValidator().
      • Injete as instâncias do Validator em seu EJB, bean CDI ou qualquer outro recurso Java EE injetável.
    2. É possível usar o ValidatorContext devolvido pelo ValidatorFactory.usingContext() para personalizar a instância do seu Validador. Ao usar esta API, você pode configurar um MessageInterpolator, TraverableResolver e ConstraintValidatorFactory personalizados. Essas interfaces estão especificadas na especificação Bean Validation e são novas para o Hibernate Validator 4.
  4. Modifique o código para usar as novas restrições do Bean Validation

    As novas restrições de validação de nível Bean exigem alterações de código, quando você migra para o Hibernate Validator 4.
    1. Para fazer a atualização para o Hibernate Validator 4, você precisa usar as restrições nos seguintes pacotes:
      • javax.validation.constraints
      • org.hibernate.validator.constraints
    2. Todas as restrições que existiam no Hibernate Validator 3 continuam disponíveis no Hibernate Validator 4. Para usá-las, é necessário importar a classe especificada e, em alguns casos, alterar o nome ou o tipo de parâmetro de restrição.
  5. Use restrições personalizadas

    No Hibernate Validator 3, uma restrição personalizada necessitava de implementar a interface org.hibernate.validator.Validator. No Hibernate Validator 4, é necessário implementar a interface javax.validation.ConstraintValidator. Essa interface contém os mesmos métodos initialize() e isValid() da interface anterior, no entanto, o método de assinatura foi alterado. Além disso, a alteração DDL não possui mais suporte no Hibernate Validator 4.
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat