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.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage