Связи в БД Hibernate

Пишу обычное CRUD приложение. У меня вопрос по связям и удалениям. Есть один класс WorkExperience

    @Entity
@Data
public class WorkExperience {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String company;
    private String jobTitle;
    @Column(nullable = false)
    @JsonFormat(pattern = "dd-MM-yyyy")
    private LocalDate dateStart;

    @Column(nullable = false)
    @JsonFormat(pattern = "dd-MM-yyyy")
    private LocalDate dateFinish;

    @Column(nullable = false)
    private String description;

    @ManyToOne
    @JoinColumn(name = "profile_id")
    private Profile profile;

    @ManyToMany
    @JoinTable(
            name = "work_experience_primary_skills",
            joinColumns = @JoinColumn(name = "work_experience_id"),
            inverseJoinColumns = @JoinColumn(name = "node_id")
    )
    private Set<Node> primarySkills = new HashSet<>();

    @ManyToMany
    @JoinTable(
            name = "work_experience_secondary_skills",
            joinColumns = @JoinColumn(name = "work_experience_id"),
            inverseJoinColumns = @JoinColumn(name = "node_id")
    
    private Set<Node> secondarySkills = new HashSet<>();}

И вторая модель Node - грубо говоря список скиллов ( джава, питон,sql и т.д.)

    @Entity
@Data
public class Node {
    @Id
    @SequenceGenerator(name = "node_seq2",
            sequenceName = "node_sequence2",
            initialValue = 1, allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "node_seq2")
    private Long id;

    @Column(nullable = false)
    private String title;

    @Column(nullable = false, unique = true)
    private String slug;

    @ManyToMany(mappedBy = "knowledge", cascade = CascadeType.ALL)
    private Set<Profile> profiles = new HashSet<>();

    @ManyToMany(mappedBy = "primarySkills", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    private Set<WorkExperience> primarySkillExperiences = new HashSet<>();

    @ManyToMany(mappedBy = "secondarySkills", cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}
    private Set<WorkExperience> secondarySkillExperiences = new HashSet<>();}


Я не могу сделать удаление Node какого-то. Я хочу удалить его запросом, условно и чтобы пропала связь его с WorkExperience. То есть была ( джава, питон, с#) у WorkExperience, а после удаления джавы остался (питон, с#). Я как только не пробовал, но выбивает ошибку

DataIntegrityViolationException: ОШИБКА: UPDATE или DELETE в таблице "node" нарушает ограничение внешнего ключа "fkat34t854bn7n6mxm03u1nrary" таблицы "work_experience_primary_skills" Подробности: На ключ (id)=(16) всё ещё есть ссылки в таблице "work_experience_primary_skills". Как удалить?


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