У меня есть класс Person
с двумя подклассами Student
и Employee
Hibernate наследования, полиморфная экономия
@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 {
}
Студента также может быть сотрудником, но когда я пытаюсь сохранить студент с тем же идентификатором в качестве работника, спящий режим бросает дубликат первичного ключа исключение
org.hibernate.exception.ConstraintViolationException: Duplicate entry '142.855.267-71' for key 'PRIMARY'
спящий режим пытается вставить новый человек в базе данных, и я не хочу этого.
Есть ли способ заставить спящий режим признать, что человек уже существует в базе данных и просто сохраняет ссылку на человека?
кстати: когда я вставляю ученика и сотрудника вручную, все работает как шарм.
благодарит за ответ, но продолжает выдавать ту же ошибку – Lucao