3.2.2.12. Migration zu Hibernate Validator 4


Zusammenfassung

Bei Hibernate Validator 4.x handelt es sich um eine komplett neue Code-Basis, die die JSR 303 - Bean-Validierung implementiert. Der Migrationsprozess vom Validator 3.x zu 4.x ist recht unkompliziert, aber es gibt einige Änderungen, die Sie bei der Migration Ihrer Applikation beachten müssen.

Prozedur 3.17. Sie müssen eine oder mehrere der folgenden Aufgaben ausführen

  1. Zugreifen auf die standardmäßige ValidatorFactory

    Die JBoss EAP 6 bindet eine standardmäßige ValidatorFactory unter dem Namen java:comp/ValidatorFactory an den JNDI-Kontext.
  2. Vom Lebenszylus ausgelöste Validierung verstehen

    Wenn in Verbindung mit Hibernate Core 4 eingesetzt, so wird die Lebenszyklus basierte Validierung automatisch durch Hibernate Core aktiviert.
    1. Die Validierung erfolgt an Entity INSERT, UPDATE und DELETE-Operationen.
    2. Sie können die nach Ereignistyp zu validierenden Gruppen mittels der folgenden Properties konfigurieren:
      • javax.persistence.validation.group.pre-persist,
      • javax.persistence.validation.group.pre-update, and
      • javax.persistence.validation.group.pre-remove.
      Die Werte dieser Properties sind durch Kommas getrennt, voll qualifizierte Klassennamen der zu validierenden Gruppen.
      Validierungsgruppen sind ein neues Feature der Bean Validierungsspezifikation. Falls Sie dieses neue Feature nicht nutzen möchten, so sind bei der Migration zum Hibernate Validator 4 keine Änderungen notwendig.
    3. Sie können die Lebenszylus-basierte Validierung durch Einstellung der javax.persistence.validation.mode-Property auf none deaktivieren. Andere gültige Werte für diese Property sind auto (der Standard), callback und ddl.
  3. Konfigurieren Sie Ihre Applikation zur Verwendung manueller Validierung

    1. Falls Sie die Validierung manuell steuern möchten, so können Sie auf eine der folgenden Weisen einen Validator erstellen:
      • Erstellen Sie eine Validator-Instanz aus der ValidatorFactory mittels der getValidator()-Methode.
      • Speisen Sie die Validator-Instanzen in Ihr EJB, Ihr CDI-Bean oder eine andere einspeisbare Java EE Ressource ein.
    2. Sie können den von der ValidatorFactory.usingContext() wiedergegeben ValidatorContext zur Anpassung Ihrer Validator-Instanz verwenden. Mittels dieses API können Sie benutzerdefinierte MessageInterpolator, TraverableResolver und ConstraintValidatorFactory konfigurieren. Diese Interfaces sind in der Bean Validierungsspezifikation festgelegt und neu im Hibernate Validator 4.
  4. Bearbeiten Sie den Code, der mit den neuen Bean Validierungsbedingungen verwendet werden soll

    Die neuen Validierungsbedingungen auf Bean-Ebene erfordern Code-Änderungen wenn Sie zum Hibernate Validator 4 migrieren.
    1. Um ein Upgracde zu Hibernate Validator 4 durchzuführen müssen Sie die Bedingungen in den folgenden Paketen Verwenden:
      • javax.validation.constraints
      • org.hibernate.validator.constraints
    2. Alle Bedingungen, die im Hibernate Validator 3 vorhanden waren, gibt es auch im Hibernate Validator 4. Um diese zu verwenden, müssen Sie die festgelegte Klasse importieren und - in manchen Fällen - den Namen oder den Typ des Bedingungsparameters ändern.
  5. Verwendung benutzerdefinierter Bedingungen

    Beim Hibernate Validator 3 musste eine benutzerdefinierte Bedingung im org.hibernate.validator.Validator-Interface implementiert werden. Beim Hibernate Validator 4 müssen Sie das javax.validation.ConstraintValidator-Interface implementieren. Dieses Interface enthält dieselben initialize()- und isValid()-Methoden wie das vorherige Interface, wobei sich allerdings die Methodensignatur geändert hat. Desweiteren wird DDL-Änderung beim Hibernate Validator 4 nicht mehr unterstützt.
Nach oben
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2025 Red Hat