문제해결

detached entity passed to persist 해결

Meluu_ 2025. 8. 11. 17:01

 

org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: zypt.zyptapiserver.domain.Member

 

테스트 코드에서

BeforeEach로 Member를 생성하고 연관관계 설정후 @Test를 하던 중

이상하게 JdbcTemplate에서는 발생하지않고 JPA를 사용하면 해당 예외가 터졌다.

 

알고보니 멤버 엔티티를 생성할때 

엔티티의 ID 전략을 따로 설정해놓고 생성자에 id값을 따로 넣어주어서 충돌되어 생긴 문제였다..

 

JDBC는 해당 ID전략이나 엔티티에 대한 설정은 안먹히니 상관없지만

JPA의 경우는 다르다. 때문에 ID 전략에 맞춰서 생성자를 쓰지 않고 

롬복의 @Builder 로 생성하여 해결하였다.

 

 

하면서 느낀점

편리함을 누리기 위해서는 따라야하는 규약이 많은 것 같다.