У меня есть сущность Device, с отношением OneToMany к сущности Sensor. Мне нужно сделать так, чтобы при удалении Device удалялись все связанные с ним Sensor. Сейчас ссылки у них описаны так:
Device.class@OneToMany(mappedBy = "device", orphanRemoval = true, cascade = CascadeType.ALL)
private List<Sensor> sensors;
Sensor.class@JoinColumn(name = "device_id")
@ManyToOne(fetch = FetchType.LAZY)
private Device device;
При попытке удалить все Device из таблицы вылезает ошибка:
ошибкаERROR: ОШИБКА: UPDATE или DELETE в таблице "devices" нарушает ограничение внешнего ключа "fk834yqd4p6g9s2b6ufnba8bxrs" таблицы "sensors"
DETAIL: На ключ (id)=(18) всё ещё есть ссылки в таблице "sensors".
SQL state: 23503
Если посмотреть в PGAdmin код создания таблицы, то там почему-то прописано ON UPDATE NO ACTION
создание devicesCREATE TABLE public.devices
(
id bigint NOT NULL,
last_connection timestamp without time zone,
name character varying(255) COLLATE pg_catalog."default",
type character varying(255) COLLATE pg_catalog."default",
owner_id bigint,
CONSTRAINT devices_pkey PRIMARY KEY (id),
CONSTRAINT fkc610qimpcb4kdm60lpxdccmlr FOREIGN KEY (owner_id)
REFERENCES public.users (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
WITH (
OIDS = FALSE
)
Пробовал заменить на аннотацию @Cascade, но никакого результата