본문으로 바로가기

 

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

 

[DB] detached entity passed to persist 에러 간단 해결하기

이번 포스팅에서는 detached entity passed to persist 에러에 대해 알아보도록 하겠습니다. DB와 관련된...

blog.naver.com

 

반응형