Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java EE 7: Geschäftsanwendungen

Entitäten überprüfen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
"Vertrauen ist gut, Kontrolle ist besser" – das gilt auch für die Java EE. Hier befassen Sie sich damit, welche Einschränkungen für Felder und deren Werte definiert werden können und setzen diese Einschränkungen auf Entitäten um.

Transkript

Für Entitäten gilt: Vertrauen ist gut, Kontrolle ist besser. Aus diesem Grund werden wir in diesem Video klären, wie wir Entitäten automatisiert überprüfen lassen können, wenn sie in die Datenbank geschrieben werden. Und wir werden klären, wie wir diese Überprüfung ein- beziehungsweise ausschalten können. Darüber hinaus werden wir unsere drei Entitäten, die wir definiert haben, mit entsprechenden Überprüfungsmechanismen versehen. Das Überprüfen von Daten auf Ebene der JPA geschieht mit Hilfe von Annotationen, dabei wird das Beans Validation Framework eingesetzt. Das ist allerdings erst der Fall, seitdem es die Java EE 7 gibt. Vorher war das nicht der Fall, vorher mussten Sie proprietäre Annotationen, des jeweils unten drunter liegenden persistenz Frameworks einsetzen. Die entsprechenden Beschränkungen und Informationen werden mit Hilfe von Annotationen auf Ebene der Felder notiert. Folgende Einschränkungen oder Informationen können wir setzen. Die Annotation "@NotNull" auf Ebene eines Feldes gibt Auskunft darüber, dass der Wert dieses Feldes nicht Null sein darf, ist dem nicht so, gibt es eine Exception. Die Annotation "@AssertTrue" und "@AssertFalse" drücken aus, dass der Feldwert wahr oder falsch sein muss. Davon abweichende Werte werden schlichtweg zu Fehlern führen. Die Annotation "@Min" und "@DecimalMin" erlauben es uns für ein Feld ein Mindestwert zu definieren. Wird ein Wert zugewiesen, beziehungsweise wird versucht ein Feld zu speichern, dem ein Wert zugewiesen worden ist, der unter dem angegebenen Minimalwert liegt, dann wird es eine Exception geben. Analoges gilt: Für die Annotationen "@Max", beziehungsweise "@DecimalMax". Feldern, denen diese Annotationen zugewiesen werden, dürfen keine Werte zugewiesen werden, die größer sind als die angegebenen Maximalwerte. Die Annotation "@Size" erlaubt es uns eine Länge eines Feldes zu definieren. Dabei können wir auch Minimal- und Maximalwert angeben. Die Annotation "@Digits" erlaubt es uns Ziffern anzugeben, und wem das Alles nicht ausreicht, der kann mit Hilfe der "@Pattern" Annotation einen regulären Ausdruck angeben, der erfßllt sein Muss, damit der Datensatz erfolgreich gespeichert werden kann. Diese Validierung lässt sich ein- beziehungsweise ausschalten. Normalerweise werden diese Einschränkungen bei jedem Speichervorgang automatisch überprüft. Das ist ein Standardverhalten, die Validierung ist aktiv. Ich kann das Ganz allerdings ändern, indem ich in der persistence.xml ein entsprechendes Flag setze. Grundsätzlich gilt: Sollte eine Einschränkung verletzt sein, wird die aktuelle Transaktion zurückgerollt und der Datensatz wird nicht gespeichert. Sehen wir uns nun an, wie wir dies auf Ebene unser drei Entitäten definieren können. Hier auf Ebene der Customer Annotation gibt es die beiden Felder "firstName" und "lastName". beide sind vom Typ "String" und beiden dürfen derzeit leere Werte zugewiesen werden, sogar der Wert Null ist möglich, das wollen wir verhindern. Zunächst einmal definieren wir auf Ebene des ersten Feldes, dass dieses Feld niemals den Wert Null haben darf. Das geben wir an mit Hilfe der @NotNull Annotation aus dem javax.validation.constraints Package. Das selbe machen wir auch bei dem Feld Nachnamen. Nun geben wir mit Hilfe der @Size Annotation noch an, dass die Zeichenkette eine Mindestlänge von einem Zeichen haben soll. Darüber hinaus können wir mit Hilfe des Max-Attributes die Maximallänge angeben, so ein Vorname sollte in aller Regel nicht länger als 50 Zeichen sein. Analog gehen wir beim Nachnamen vor: Mindestens ein Zeichen und maximal 100 Zeichen. Die Angabe von Min, beziehungsweise Max ist jeweils optional. Damit haben wir die Customer Entität schon mit entsprechenden Constraints versehen. Nun widmen wir uns der Address Entität. Auch hier haben wir einige Felder, in die im Moment sowohl Null Werte eingegeben werden können, als auch beliebige Feldlängen. Aus diesem Grund definieren wir, dass alle diese Felder kein Null Wert besitzen dürfen, dies machen wir mit Hilfe der @NotNull Annotation. Achten Sie immer darauf, dass die aus dem richtigen Package kommt. Auch die Feldlängen sollten wir definieren. Wir geben hier für die Straße an, dass sie maximal 100 Zeichen lang sein darf. Dasselbe gilt für die Stadt. Die Postleitzahl darf nur maximal fünf Zeichen lang sein, jedenfalls in Deutschland. Vielleicht lassen wir auch ein Landeskürzel mit zu, dann lassen wir besser sieben bis zehn Zeichen zu, also maximal zehn Zeichen, und das Land selber darf maximal 50 Zeichen lang sein. Somit haben wir jetzt auch die Address Entität entsprechend mit Constraints versehen. Widmen wir uns zuletzt der Communication Entität. Auch hier sollte der Wert in jedem Fall nicht Null sein dürfen, das heißt, wir fügen hier die @NotNull Annotation ein und dasselbe gilt auch für den Namen, wir wollen schon, dass das Ganze einen entsprechenden Namen hat. Der Wert darf einen Maximalwert, eine Maximallänge von 100 Zeichen haben, der Name sollte etwas kürzer sein, 20 Zeichen sollten hier ausreichend sein. Damit haben wir zu guter Letzt auch die Communication Entität mit entsprechenden Constraints versehen. In diesem Video haben wir uns damit auseinandergesetzt, welche Möglichkeiten wir haben Constraints, also Einschränkungen für Werte auf Ebene von Entitäten zu definieren und wir haben unsere drei Entitäten: Customer, Address und Communication mit den entsprechenden Constraints versehen.

Java EE 7: Geschäftsanwendungen

Verfolgen Sie, wie eine komplette Business-Applikation unter dem Einsatz des gesamten Java-Enterprise-Techologiestacks ensteht.

5 Std. 2 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!