org.hibernate.PersistentObjectException: detached entity passed to persist 에러

손경민·2022년 5월 14일
3

detached entity passed to perist 오류 발생

JPA 프로젝트에 엔티티를 영속화 및 커밋 시도하니 다음과 같은 에러가 발생하였음


구글링 결과 CascadeType.ALL 옵션과 관련있는 듯 해보였으나
내 프로젝트에는 관련 옵션이 존재하지 않았음

만일 본인과 같이 CascadeType.ALL 관련 옵션이 없으나 동일한 오류가
발생하였다면 엔티티 클래스에 @Id를 부여한 필드에 @GeneratedValue를
작성하여 AUTO, SEQUENCE, IDENTITY 전략 등 데이터베이스에게
key 값을 자동 생성하도록 하는 전략을 선택하였으면서 엔티티 객체 생성 시
Id에 해당하는 필드에 직접 값을 입력하지 않았는지 확인

@Entity
public class Member {

	// 데이터베이스에 키 생성 위임 전략을 취함
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    //...
}
Member member = new Member();
// 데이터베이스에 키 생성 전략을 취했으나 엔티티를 생성하면서 key 값을 수동으로 부여함
member.setId(1L);
member.setName("hello");

다음과 같이 @Id 필드에 수동으로 키 값을 부여하게 되면 에러가 발생하였음

0개의 댓글