Отображение:
@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 были удалены, но связанные с ними группы удалять не следует.