연관관계 2

[트러블 슈팅] cascade의 위험성..

쇼핑몰 프로젝트를 하다가 또 에러에 고통을 받게 되었다.. 멤버의 장바구니에서 장바구니 상품을 삭제하는 기능을 개발하고 있었다.  장바구니와 장바구니 상품은 orphanRemoval로 장바구니 리스트에서 상품을 제거하면, 자동으로 db에 반영되는 방식으로 진행하려고 했고, 쉽게 개발이 될 거라고 예상했다.  그러나 갑자기 ould not execute statement [Cannot delete or update a parent row: a foreign key constraint fails (`goodpang`.`order_item`, CONSTRAINT `FKija6hjjiit8dprnmvtvgdp6ru` FOREIGN KEY (`item_id`) REFERENCES `item` (`id`))] [d..

프로젝트 2025.01.11

[트러블 슈팅] 복잡한 연관관계에서의 삭제

쇼핑몰 프로젝트를 계속 진행하다 상품을 삭제하는 기능을 개발하게 되었다. 상품 엔티티를 삭제하게 되면, 연관되는 엔티티에도 영향을 끼치게 되어서 에러가 발생하였다. 또한 어떤 앤티티는 db에 유지하고 싶고, 어떤 엔티티는 db에서 삭제되기를 원하기도 하였다.   현재 연관관계 매핑은 이렇다. 멤버는 cart와 order와 likeItem 리스트를 가진다. cart는 cartItem 리스트를 가진다.cartItem은 item을 가진다. order은 orderItem 리스트를 가진다.orderItem은 item을 가진다. likedItem은 item을 가진다. item은 그 무엇도 가지지 않는다. 이 상황에서 Item을 삭제했을 때 내가 원하는 것은 다음과 같다.1. Item을 삭제하면2. cart의 car..

프로젝트 2025.01.11
반응형