Как избежать удаления объекта от многих ко многим в jpa

#java #jpa #many-to-many #cascade

#java #jpa #многие ко многим #каскад

Вопрос:

У меня есть это сопоставление в Person entity:

 @ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PersonAddress", joinColumns = { @JoinColumn(name = "personId") }, inverseJoinColumns = {
        @JoinColumn(name = "addressId") })
private Set<Address> addresses;
  

И это по адресу объекта:

 @ManyToMany(mappedBy = "addresses")
private Set<Person> owners;
  

Я перепробовал все доступные каскадные параметры, но каждый раз, когда я сохраняю объект Person, он удаляет все отношения с адресами. Можно ли сохранять адреса при сохранении Person?

Ответ №1:

не рекомендуется использовать CascadeType.REMOVE или CascadeType.В целом, в ассоциациях «ко многим» вы должны самостоятельно реализовать удаление дочерних сущностей. Вот ссылка, в которой подробно объясняется, как выполнить реализацию.

https://thorben-janssen.com/avoid-cascadetype-delete-many-assocations/

Комментарии:

1. Как вы можете видеть, я не использую ни одну каскадную опцию в данный момент, и я хочу избежать удаления.