GEDOPLAN
Jakarta EE (Java EE)

Eclipselink und 0 als ID/PK-Wert

Jakarta EE (Java EE)

JPA-Entities können ID-Attribute der primitiven Typen int oder long (u. a.) besitzen. Für diese ist der Wert 0 grundsätzlich OK. Eclipselink interpretiert in der Default-Konfiguration solche Werte jedoch als „nicht gesetzt“, was für generierte IDs eine Anforderung eines neuen Wertes bei persist oder merge auslöst.

Soll der Wert 0 als normaler Wert ohne die genannte Sonderbedeutung genutzt werden, muss man Eclipselink dahingehend umkonfigurieren. Dazu muss in der persistence.xml die folgende Property eingesetzt werden:

<property name="eclipselink.id-validation" value="NULL"/>

Damit wird nur noch der Wert null als „nicht gesetzt“ interpretiert. In der Konsequenz können dann generierte ID natürlich keinen primitiven Typ haben.

Anstelle der globalen Einstellung mit Hilfe der genannten Property kann dasselbe auch pro Entity-Klasse mit Hilfe der Annotation @PrimaryKey erreicht werden.

Weitere Details siehe Java Persistence API (JPA) Extensions Reference for EclipseLink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Lifecycle-Events der CDI-Scopes

Beim Aktivieren und Deaktivieren von CDI-Scopes sendet der Container Events, die von der Anwendung bspw. zur Initialisierung genutzt werden können.…
ng1516titel
Webprogrammierung

Angular 16/17: new control flow

Diese Reihe wirft einen kurzen Blick auf einige Highlights der Angular Versionen 16 und 17. Heute: control flow. Ein fantastisches…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!