detached entity passed to persist 에러

2021. 12. 1. 20:58·Tech/JPA
    public static Apple 잠금해제상태_스케줄_생성() {
        return Apple.builder()
            .id(1)
            .name("사과")          
            .build();
    }

테스트코드에서 Fixture로 Apple 엔티티를 생성할려구 했다.

 

@AllArgsConstructor
@NoArgsConstructor( access = AccessLevel.PROTECTED )
@Builder
@Entity
public class Apple {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    //...

엔티티 설정은 다음과 같다.

 

JpaRepository를 상속받아 save()메소드로 생성한 엔티티를 저장할려구 했는데

 

detached entity passed to persist 에러가 발생했다.

 

원인은 엔티티에 @GeneratedValue를 사용해서 자동생성하겠다고 선언을 했는데 

id를 직접 세팅 후 persist를 호출하면 JPA는 해당 객체가 detached 상태의 객체라 생각한다.

detached 객체는 이전에 한번 영속화 되었던 적이 있는 객체 (DB에 저장되어 있는 데이터를 JPA의 findById로 조회한 

 

참고

https://www.inflearn.com/questions/121326

 

영속성 공부하다가 궁금한게 생겼습니다 . - 인프런 | 질문 & 답변

class A  {   @GeneratedValue   @Id   private Long id;  } 일떄 아래 run 메서드에서  @Transactional @Component public class JpaRunn...

www.inflearn.com

 

저작자표시 (새창열림)

'Tech > JPA' 카테고리의 다른 글

Jpa save vs saveAndFlush vs saveAll  (4) 2024.01.25
Jpa로 데이터 수정 작업 후 수정된 데이터를 카프카에 전송하는 방법  (1) 2023.02.11
'Tech/JPA' 카테고리의 다른 글
  • Jpa save vs saveAndFlush vs saveAll
  • Jpa로 데이터 수정 작업 후 수정된 데이터를 카프카에 전송하는 방법
소프
소프
  • 소프
    기회는 찬스
    소프
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Language (20)
        • Java (19)
        • Design Pattern (1)
      • Tech (27)
        • Spring (19)
        • JPA (3)
        • QueryDSL (1)
        • Gradle (4)
      • 개발 생각 (1)
      • IT Book (0)
        • 자바_스프링 개발자를 위한 실용주의 프로그래밍 (0)
      • Database (4)
        • Mysql (4)
        • Redis (0)
      • 네트워크 (1)
      • 운영체제 (2)
      • IDE (12)
        • Intellij (9)
        • vscode (2)
        • datagrip (1)
      • 인프라 (11)
        • Docker (2)
        • Jenkins (7)
        • Github Actions (1)
        • GCP (1)
      • 형상관리 (2)
        • gitlab (2)
        • git (0)
      • 외부활동 (44)
        • CS 면접 끝장내기 - 데이터베이스 1기 (5)
        • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
        • CS 면접 끝장내기 - 자바 2기 (0)
        • TDD, 클린 코드 with Java 17기 (7)
        • ATDD, 클린 코드 with Spring 8기 (6)
        • 루퍼스 2기 (21)
      • 프로젝트 (0)
      • 회고 (6)
      • 기타 (1)
        • 제미니의 개발 실무 (0)
  • 블로그 메뉴

    • 홈
    • Github
    • LinkedIn
    • 방명록
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
소프
detached entity passed to persist 에러
상단으로

티스토리툴바