Отвязать зависимый объект hibernate от главного, не удаляя его из базы

Я работаю с объектами модификаторов блюд в ресторане (modification) и объектами самих блюд (products). Кроме этого, у модификаторов и у блюд есть категории (group_products). Мне нужно сделать так, чтобы на фронте можно было модификаторам задавать несколько категорий, а также удалять категории у модификатора. Здесь очевидная связь многие-ко-многим: много модификаторов могут относиться к одной категории, и один модификатор может иметь много категорий (например, один соус относится и к пиццам и к суши).

Вот так определены сущности:

@Entity
@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class Modification {
    @Id
    @EqualsAndHashCode.Include
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)

    @ManyToMany(cascade = { CascadeType.ALL })
    @JoinTable(name = "modification_group",
            joinColumns = @JoinColumn(name = "modification_id"),
            inverseJoinColumns = @JoinColumn(name = "group_id"))
    private Set<GroupProducts> groupProducts;
}




@Entity
@Cacheable(cacheNames = "GroupProducts")
public class GroupProducts {

    @Getter
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @ManyToMany(mappedBy = "groupProducts")
    private List<Modification> modifications;
}

Мне нужно, чтобы можно было удалять категорию у модификатора так, чтобы при этом сама категория оставалась в базе. При текущей реализации, похоже, если я удалю одну категорию из списка категорий модификатора, то она удалится и из таблицы категорий. Меня такое поведение не устраивает. Надо просто как-то отвязать категорию от модификатора, но чтобы она осталась в базе. Как это можно реализовать?


Ответы (0 шт):