Wpis z mikrobloga

@Brodeon: Mam problem z JPA w Spingu. Mianowicie gdy usuwam Parenta który ma @OneToMany(cascade = CascadeType.ALL) nie chce usuwać dzieci z tej właśnie relacji przed usuwaniem parenta i wywala błąd Cannot delete or update a parent row: a foreign key constraint fails. Wszystkie ManyToMany i ManyToOne działają jak należy tylko to OneToMany nie chce działać tak jak powinno

#programowanie #jpa #spring
  • 17
@Brodeon: tak, chociaż może nawet wystarczy, że wymusisz załadowanie tej kolekcji i same się poodpinają, ale nie jestem pewien
bo stawiam że jest lazy, hibernate o nich nie wie i nie odpina klucza i leci błąd w bazie
@Brodeon: chyba źle zrozumiałem co chcesz zrobić xd jak dzieci mają być usuwane to nie ustawiaj im nullów, tylko właśnie możesz sprawdzić czy nie ma problemu z tym, że kolekcja przez to że jest lazy się jeszcze nie załadowała, chyba wywołanie parent.getChildren() wystarczy żeby się dociągnęło
@TheDudee: Niestety ale dodatkowo jak kasuję grupę to inne z OneToMany nie chcą się skasować mimo CascadeType.ALL i wywala błąd "Cannot delete or update a parent row: a foreign key constraint fails (dive_database.join_group_users_requests, CONSTRAINT FK_join_group_users_requests_users_groups FOREIGN KEY (group_id) REFERENCES users_groups (group_id))" bo kasuje grupę wcześniej niż inne dzieci tej grupy
@TheDudee: Co do cudów :D. To niestety do niektórych entity potrzebuję voodoo bo przykładowo posty mogą mieć zdjęcia i należy usunąć zdjęcia gdy post jest usuwany, dlatego "normalnie" nie usuwam posta tylko musiałem ręcznie napisać taką logikę. Cholera wie czemu to nie działa dla tamtych OneToMany. Na szybko skleiłem szybki projekcik w którym zrobiłem kilka entity które mają tak samo OneToMany i normalnie usuwa dzieci przy usuwaniu rodzica więc o co