Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist:
# 원인
JPA Entity 설정을 할 때 ManyToOne 필드에 cascade=cascadeType.ALL 을 주어서였다.
만약 A 와 B1, B2 가 있다고 할 때,
1) 처음 A와 B1을 함께 저장 (persist() 또는 save()) 하고,
2) 또다시 B2를 저장하려고하면
3) cascadeType.ALL 속성에 의해서 다시 A를 함께 저장하게 된다.
# 해결
종속성 속성을 없애주면 된다.
나의 경우에는 cascade 속성을 아예 없애고 각각 따로 저장해주었다.
save() 대신 saveOrUpdate() 를 사용해도 된다고 한다.
-> 왜냐면 saveOrUpdate() 는 일시적으로 두 엔티티를 분리하여 사용하기 때문
# 참고자료
https://m.blog.naver.com/sim4858/220998440706
반응형