JPA-Vererbung erfordert ID in Unterklasse
Ich habe ein Problem mit meinem JPA-Domain-Modell. Ich versuche nur, mit einer einfachen Vererbung herumzuspielen, für die ich eine einfache Person-Basisklasse und eine Customer-Unterklasse verwende. Gemäß der offiziellen Dokumentation (sowohl JPA als auch EclipseLink) benötige ich nur das ID-Attribut / die ID-Spalte in der Basisklasse.Aber wenn ich meine Tests durchführe, erhalte ich immer die Fehlermeldung, dass der Kunde keine @Id hat?
Zuerst dachte ich, das Problem liege in der Sichtbarkeit des ID-Attributs, da es zuerst privat war. Aber selbst nachdem ich es in protected geändert habe (damit die Unterklasse direkten Zugriff hat), funktioniert es nicht.
Person:
@Entity @Table(name="Persons")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TYPE")
public class Person {
@Id
@GeneratedValue
protected int id;
@Column(nullable = false)
protected String firstName;
@Column(nullable = false)
protected String lastName;
Kunde:
@Entity @Table(name = "Customers")
@DiscriminatorValue("C")
public class Customer extends Person {
//no id needed here
Mir gehen die Ideen und Ressourcen aus, die ich mir ansehen kann. Es sollte ein ziemlich einfaches Problem sein, aber ich sehe es einfach nicht.