Hallo,
jede Entity-Klasse braucht eine ID und bei optimistischer Sperrung auch noch ein Attribut für die Version. Statt das in jeder Klasse zu wiederholen, könnte man doch auch die gute, alte Vererbung benutzen:
Aber ist das eine gute Idee? Zum einen gibt es in Java nur einfache Vererbung, so dass es problematisch wird, wenn ein Entity von einem Nicht-Entity erben sollte, aber ich denke, das dürfte nicht so oft vorkommen. Und selbst wenn, könnte man dann immer noch die beiden Felder direkt in die Klasse schreiben. Und zum anderen werden Annotationen nur auf Klassenebene vererbt. Ich bin mir aber gerade nicht sicher, ob das hier ein Problem wäre, denn es wird ja auch das (annotierte) Feld der Oberklasse verwendet.
Hätte eine von Entity abgeleitete Klasse eine von JPA erkannte ID, wenn man es in der Klasse Entity so schreiben würde? Gibt es sonst noch Einwände oder bessere Vorschläge?
jede Entity-Klasse braucht eine ID und bei optimistischer Sperrung auch noch ein Attribut für die Version. Statt das in jeder Klasse zu wiederholen, könnte man doch auch die gute, alte Vererbung benutzen:
Java:
@Entity
public abstract class Entity {
@Id private long id;
@Version private long version;
}
Aber ist das eine gute Idee? Zum einen gibt es in Java nur einfache Vererbung, so dass es problematisch wird, wenn ein Entity von einem Nicht-Entity erben sollte, aber ich denke, das dürfte nicht so oft vorkommen. Und selbst wenn, könnte man dann immer noch die beiden Felder direkt in die Klasse schreiben. Und zum anderen werden Annotationen nur auf Klassenebene vererbt. Ich bin mir aber gerade nicht sicher, ob das hier ein Problem wäre, denn es wird ja auch das (annotierte) Feld der Oberklasse verwendet.
Hätte eine von Entity abgeleitete Klasse eine von JPA erkannte ID, wenn man es in der Klasse Entity so schreiben würde? Gibt es sonst noch Einwände oder bessere Vorschläge?