У меня есть 2 класса: человек и работник.
Сотрудник происходит от человека. Персона не абстрактна и может быть лигатной сущностью.
Person table: id (PK), first_name, last_name
Employee table: employee_id (PK), person_id (FK), work_start_date
Классы выглядят так: Person class:
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "persons")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
public Person() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Employee class:
@Entity
@Table(name = "employees")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@PrimaryKeyJoinColumn(name = "person_id")
public class Employee extends Person {
@Id
@Column(name = "employee_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long employeeId;
@Column(name = "start_work_date")
private Date startDate;
public Employee() {
}
public Long getEmployeeId() {
return employeeId;
}
public void setEmployeeId(Long employeeId) {
this.employeeId = employeeId;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
}
И мой repositroy:
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}
Когда я вызываю get сотрудников, сами члены сотрудника заполняются, но все члены моего суперкласса (Person) равны нулю ... Должен ли я добавить в класс сотрудника члена FK к человеку?