我無法控制數據庫結構。但它是這樣設計的。一個人就像所有類型的人的基礎。然後創建一個Teacher類,其PK也引用Person的PK。問題是當我從另一個班級引用教師時,我得到「列號錯誤,應爲0」錯誤。JPA休眠 - 外鍵作爲主鍵
請幫助什麼是最好的方法。
@Entity
@Table(name = "APP_Person")
Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "PersonID", unique = true, nullable = false)
private Long personID;
@Column(name = "Name", length = 160)
@Size(max = 160)
private String name;
}
@Entity
@Table(name = "APP_Teacher")
public class Teacher implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@ManyToOne(fetch = FetchType.LAZY)
@NotBlank
@JoinColumn(name = "PersonID", nullable = false)
Person person;
@Column(name = "Expertise", length = 160)
@Size(max = 160)
private String expertise;
}
@Entity
@Table(name = "APP_Course")
public class Course implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "CourseID", unique = true, nullable = false)
private Long courseID;
@ManyToOne(fetch = FetchType.LAZY)
@NotBlank
@JoinColumn(name = "PersonID", unique = true, nullable = false)
Teacher teacher;
}
難道你不應該將沒有構成它的'Person'擴展到'Teacher'嗎? – JamesENL
我可以做到這一點,但是當我向老師添加一條記錄時,我希望將記錄插入教師和個人表中。那可能嗎?這就是我沒有繼承的原因 – JavaDev