Cor*_*chi 8 java spring hibernate jpa
@Entity
@Table(name = "PERSON")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Person {
@Id
@GeneratedValue
@Column(name = "PERSON_ID")
private Long personId;
@Column(name = "FIRSTNAME")
private String firstname;
@Column(name = "LASTNAME")
private String lastname;
// Constructors and Getter/Setter methods,
}
Run Code Online (Sandbox Code Playgroud)
Employee 类扩展了 Person
@Entity
public class Employee extends Person {
@Transient
private Date joiningDate;
// Copy Constructors and Getter/Setter methods,
}
Run Code Online (Sandbox Code Playgroud)
Employee 类只有一个瞬态对象所以我不确定是否使用 @DiscriminatorColumn 和 @DiscriminatorValue,当我尝试不使用会引发错误的鉴别器时
session.save(employee);
Run Code Online (Sandbox Code Playgroud)
我正在尝试保存在“字段列表”错误中引发未知列“DTYPE”的员工对象
我在使用 EclipseLink 时遇到了同样的问题,并且尝试使用 @discriminator 注释...但没有成功,因为在此解决方案中,必须在 2 个表中添加特定列。
我无法在表中添加列,所以我找到了以下解决方案:
@Entity
@Table(name = "PERSON")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Person {
Run Code Online (Sandbox Code Playgroud)
我刚刚将继承类型从 SINGLE_TABLE 更改为 TABLE_PER_CLASS
我在Thoughts on Java上找到了有用的解释
仅供参考,我的 2 个表实际上是 1 个表和同一个表上具有 2 或 3 个联接的视图。
| 归档时间: |
|
| 查看次数: |
8054 次 |
| 最近记录: |