Я хочу удалить сущность с дочерним ManyToMany
отношением, не затрагивая дочернюю сущность, только удалив идентификатор в ссылочной таблице
public class Parent implements Serializable {
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@NotNull
@JoinTable(name = "parent_child",
joinColumns = @JoinColumn(name = "parent_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "child_id", referencedColumnName = "id"))
private Set<Child> turns = new HashSet<>();
}
Я хочу сделать это, выполнив собственный запрос:
@Query(value = "delete from child where parentId = ?1 and id not in (?2)", nativeQuery = true)
void deleteAllUnnecessaryChildren(Long parentId, List<Long> childIds);
но я получаю ошибку:
Caused by: org.postgresql.util.PSQLException:
ERROR: update or delete on table "parent" violates foreign key constraint "fk_parent_child_parent_id" on table "parent_child"
Detail: Key (id)=(3852) is still referenced from table "parent_child".