Category: JPA

Hibernate Validator 4 – Validierung, wo sie hin gehört

Vor gut zwei Wochen erschien die Version 4 des Hibernate Validators. Dabei handelt es sich um eine komplett neue Codebasis, es ist nun die Referenzimplementierung des JSR-303: Bean Validation. Der Hauptvorteil der Benutzung von Hibernate Validator ist, dass die Überprüfungen da stattfinden, wo sie maßgeblich sind, nämlich im Model. Statt also in allen Schichten (GUI/Web, Business Layer, Data Acess, …) eine eigene Prüfung zu implementieren (und sich damit leicht Inkonsistenzen und doppelten Code einzuhandeln) erfolgt die Validierung ausschließlich in den Domänen Objekten.

Die Validierung erfogt über Constraints, die als Annotationen angegeben werden. Es sind schon einige Constraints enthalten, für besondere Zwecke lassen sich eigene erstellen. Hier mal ein einfaches Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// (imports usw. weggelassen)
public class Kunde {
 
    @NotNull(message = "Ein Kunde muss einen Namen haben")
    private String nachname;
 
    @Past(message = "Geboren in der Zukunft?")
    private Date geburtstag;
 
    @Size(min=6, max=20)
    @NotNull
    private String passwort;
 
    // Getter Setter usw.
}

Highlights der Version 4 sind:

  • Native Integration in JPA 2 und JSF 2 (für SEAM Experten nichts neues, hat dort schon mit Version 3 von Hibernate Validator funktioniert)
  • Groups: Es lassen sich Gruppen definieren, welche die Validierung bestimmter Constraints anstoßen
  • Typsicherheit: Es wird sichergestellt, dass ein Constraint zum Datentyp des Properties passt.
  • stark verbesserte Testsuite
  • uvm. …

Noch ein Hinweis: Hibernate Validator kann unabhängig von einer Verwendung des Hibernate ORM eingesetzt werden.

Meine Empfehlung: Unbedingt anschauen!

Share

Buchkritik: JPA mit Hibernate

jpa-hibernateEndlich mal ein Hibernate-Buch, das sich gleich voll und ganz auf die Annotations-Schreibweisen stürzt und die althergebrachte Konfiguration über XML-Dateien in einem separaten Kapitel abhandelt. Alles in allem haben die Autoren Bernd Müller und Harald Wehr in Ihrem Buch „Java-Persistence-API mit Hibernate“ einen geglückten Überblick über die Materie geschaffen und heben sich dabei durch einen kompakten, verständlichen Schreibstil hervor.

Besonders schön ist die Orientierung an der JPA – wann immer Feinheiten von Hibernate, die darüber hinaus gehen besprochen werden, wird dies gesondert hervorgehoben. Die Beispiele sind nie komplexer als nötig und damit leicht verständlich, wenngleich an manchen Ecken etwas konstruiert wird.

Als „Extras“ gibt es eine Einführung in Hibernate-Validator und -Search, einen Überblick über das Eclipse-Plugin Hibernate-Tools/JBoss-IDE, sowie eine Schnelleinführung in JBoss-Seam (wobei sich hier auch gleich Werbung für das neue Buch von Bernd Müller versteckt).

Share