Вы не упомянули версию Hibernate, но она не изменилась с тех пор, как я начал ее использовать.
Как вы можете прочитать в справочнике Hibernate , чтобы получить Javaстандартное SAVE_UPDATE
вам нужно {CascadeType.PERSIST, CascadeType.MERGE}
в Hibernate.
EDIT: при просмотре обновленной информации то, что вы делаете сейчас, заставляет Hibernate рассматривать ее как двунаправленное сопоставление один к одному.В основном это означает, что для каждого объекта в любой из этих двух таблиц должен быть аналогом в другой таблице с тем же идентификатором.Следовательно, вы не можете удалить только один из них, вы потеряете целостность FK.
Если вы хотите, чтобы это было однонаправленное отображение, например, если вы хотите иметь возможность удалить человека, но оставить родителя -Вы должны указать FK, обычно через @JoinColumn
, например @JoinColumn(name="PERSON_ID", unique=false, nullable=true, insertable=true, updatable=true)