Вы пропустили аннотацию
@PrimaryKeyJoinColumn(name="persoonsnummer")
из вашего Patient
класса.
Это говорит Hibernate о том, что в вашей личной таблице есть столбец persoonsnummer
, который служит уникальным идентификатором, и что в таблице пациентов также есть persoonsnummer
, который служит для связи строки пациента с соответствующей строкой человека.
Обратите внимание, что если в вашей схеме нет столбца persoonsnummer
в таблице пациентов (с таким же определением, что и в соответствующем столбце таблицы персон), вам нужно будет добавить один.
Кроме того, чтобы создать нового пациента с помощью Hibernate, вам НЕ нужно создавать объект Person. Класс Patient расширяет Person, поэтому вы можете установить все поля для Patient и Person непосредственно в нем. Когда вы используете Hibernate для сохранения пациента, он создает в базе данных строку как пациента, так и человека.