개발놀이터

org.hibernate.PersistentObjectException: detached entity passed to persist 본문

오류해결

org.hibernate.PersistentObjectException: detached entity passed to persist

마늘냄새폴폴 2021. 9. 10. 03:44

해당 에러의 원인은 종속성 관계에 있다.

두개의 객체가 서로 관계를 가지고 있다면 (1대1, 1대다) A인스턴스에 a1, a2 B인스턴스에 b 이렇게 두개의 인스턴스의 값을 디비에 집어 넣으려는데 a1을 넣으면 b가 자동으로 디비에 입력되고 a2를 넣으면 b가 또 디비에 입력되어서 b에 해당하는 엔티티를 디비에서 이미 가지고 있기 때문에 생기는 에러다. 보통 cascade를 ALL로 설정했을 때 생기는 일이며 cascade를 없애주면 해결되는 일이다. 나의 경우에는 for문을 돌면서 중복된것을 확인하고 확인함과 동시에 insert를 했기 때문에 생긴 해프닝이었다.