У меня проблема с моей моделью домена jpa. Я просто пытаюсь поиграть с простым наследованием, для которого я использую простой базовый класс Person и подкласс Customer. Согласно официальной документации (как JPA, так и EclipseLink), мне нужен только ID-атрибут/столбец в базовом классе. Но когда я запускаю свои тесты, я всегда получаю сообщение об ошибке, указывающее, что у клиента нет @Id?
Сначала я думал, что проблема заключается в видимости атрибута id, потому что он был закрыт первым. Но даже после того, как я изменил его на защищенный (поэтому подкласс имеет прямой доступ), он не работает.
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;
Клиент:
@Entity @Table(name = "Customers")
@DiscriminatorValue("C")
public class Customer extends Person {
//no id needed here
У меня заканчиваются идеи и ресурсы, на которые нужно смотреть. Это должна быть довольно простая проблема, но я просто не вижу ее.