Dziedziczenie JPA wymaga ID w podklasie
Mam problem z moim modelem domeny jpa. Po prostu staram się grać z prostym dziedziczeniem, dla którego używam prostej klasy bazowej Osoba i podklasy Klienta. Zgodnie z oficjalną dokumentacją (zarówno JPA, jak i EclipseLink) potrzebuję tylko atrybutu ID / kolumny w klasie bazowej.Ale kiedy uruchamiam moje testy, zawsze pojawia się błąd informujący mnie, że klient nie ma @Id?
Najpierw pomyślałem, że problem leży w widoczności atrybutu id, ponieważ był on najpierw prywatny. Ale nawet po zmianie na chronioną (więc podklasa ma bezpośredni dostęp) nie działa.
Osoba:
@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;
Klient:
@Entity @Table(name = "Customers")
@DiscriminatorValue("C")
public class Customer extends Person {
//no id needed here
Brakuje mi pomysłów i zasobów do obejrzenia. Powinien to być dość prosty problem, ale po prostu go nie widzę.