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?