Архив метки: jakarta.persistence.CascadeType

Создание однонаправленной связи один-к-одному со связыванием через внешний ключ

Не всегда можно и имеет смысл расширять ту или иную таблицу за счёт добавления в неё новых полей. Зачастую удобней и правильней создать ещё одну таблицу и установить между ними связь типа один-к-одному.

Если сущности слабо связаны друг с другом и не могут опираться на разделяемые значения первичных ключей, то связь между ними можно организовать с помощью внешнего ключа.

Читать далее

Использование настройки orphanRemoval для автоматического удаления из БД строк, когда соответствующие им объекты удаляются из поля-коллекции родительского объекта в Hibernate

При создании двунаправленной связи между двумя классами-сущностями мы должны самостоятельно управлять жизненными циклами объектов каждого класса. Однако, если объекты дочернего класса используются только в полях типа Collection родительского класса, то с помощью настройки orphanRemoval можно указать Hibernate’у удалять из БД строки с данными дочернего класса, при удалении объектов из этой коллекции.

Например, если в классе Person есть поле List и между классами Person и Address установлена двунаправленная связь, то можно настроить автоматическое удаление строк из таблицы Address при удалении соответствующих объектов из List.

Читать далее

Автоматическое удаление связанных классов-сущностей при удалении родительского объекта с помощью настройки CascadeType.REMOVE в Hibernate

При создании двунаправленной связи между двумя классами-сущностями мы должны самостоятельно управлять жизненными циклами объектов каждого класса, в том числе удалением строк из БД. С помощью настройки CascadeType.REMOVE в Hibernate можно избавиться от иногда рутинной операции удаления дочерних сущностей сразу после удаления родительской.

Читать далее

Автоматическое сохранение состояния связанных классов-сущностей при сохранении состояния родительского объекта с помощью настройки CascadeType.PERSIST в Hibernate

При создании двунаправленной связи между двумя классами-сущностями мы должны самостоятельно управлять жизненными циклами объектов каждого класса, в том числе сохранением строк в БД. С помощью настройки CascadeType.PERSIST в Hibernate можно избавиться от иногда рутинной операции сохранения дочерних сущностей сразу после сохранения родительской.

Читать далее