Spring-boot Hibernate удалить объект и всех его потомков

Есть объект:

@Entity
public class Parent {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long parentId;

    String name;
}

и есть объект, который на него ссылается:

@Entity
public class Child {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long childId;

    String name;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "parent_id")
    Parent parent;
}

Есть конфигурация flyway:

--  parent

DROP TABLE IF EXISTS parent;

CREATE SEQUENCE IF NOT EXISTS parent_sequence;
ALTER SEQUENCE parent_sequence RESTART WITH 1;

CREATE TABLE parent
(
    parent_id        int8 not null            DEFAULT nextval('parent_sequence'),
    name             varchar(255),
    primary key (parent_id)
);

alter table if exists parent
    add constraint parent_constraint unique (parent_id);

-- child

DROP TABLE IF EXISTS child;

CREATE SEQUENCE IF NOT EXISTS child_sequence;
ALTER SEQUENCE child_sequence RESTART WITH 1;

CREATE TABLE child
(
    child_id         int8 not null            DEFAULT nextval('child_sequence'),
    parent_id        int8 not null,
    name             varchar(255),
    primary key (child_id)
);

alter table if exists child
    add constraint child_constraint unique (child_id);

Сейчас, если выполнить

parentRepository.deleteById(parentId);

то ни чего не происходит...

объект остается на месте, из-за того, что есть запись в таблице Child, которая на него ссылается.

Как правильно сконфигурировать, чтоб Hibernate при удалении Parent удалял и ссылающуюся на него запись в Child?


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