#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. Как вы можете видеть, я не использую ни одну каскадную опцию в данный момент, и я хочу избежать удаления.