Каскадное удаление в зависимости от сайта или отношения во многих ко многим - PullRequest
0 голосов
/ 08 октября 2018

Отображение:

@Entity
@Table(name = "LABEL")
public class Label extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "LABEL_ID")
    private Integer labelId;

    @ManyToMany(mappedBy = "labels")
    private Set<Group> groups = new HashSet<>();
}

@Entity
@Table(name = "GROUP")
public class Group extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "GROUP_ID")
    private Integer groupId;

    @ManyToMany()
    @JoinTable(name = "GROUP_LABEL", joinColumns = {
            @JoinColumn(name = "GROUP_ID")},
            inverseJoinColumns = {@JoinColumn(name = "LABEL_ID")
            })
    private Set<Label> labels = new HashSet<>();

}

Итак, создано 3 таблицы => LABEL, GROUP и GROUP_LABEL.

Я хочу применить каскад для такой работы:

  • Если я удаляю элемент с идентификатором ex.15 из таблицы GROUP Я хочу, чтобы все записи с идентификатором 15 в GROUP_LABEL также были удалены и связаны с ними метками из LABEL.

  • Если я удаляю элемент с идентификатором ex.10 из таблицы LABEL Я хочу, чтобы все записи с идентификатором 10 в GROUP_LABEL были удалены, но связанные с ними группы удалять не следует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...