我有一个Person
有两个子类的类Student
和Employee
@Entity(name="person")
@Inheritance(strategy = InheritanceType.JOINED)
public class Person implements Serializable {
@Id
@GeneratedValue
private Integer id;
}
@Entity(name="student")
@PrimaryKeyJoinColumn(name="id")
public class Student extends Pessoa implements Serializable {
}
@Entity(name="employee")
@PrimaryKeyJoinColumn(name="id")
public class Employee extends Person implements Serializable {
}
学生也可以是员工,但是当我尝试保存与员工具有相同 id 的学生时,hibernate 会抛出重复的主键异常
org.hibernate.exception.ConstraintViolationException: Duplicate entry '142.855.267-71' for key 'PRIMARY'
hibernate 试图在数据库中插入一个新人,我不希望那样。
有没有办法让休眠识别数据库中已经存在一个人并保存对该人的引用?
顺便说一句:当我手动插入学生和员工时,一切都像魅力一样。