6. 스프링 데이터 JPA 분석
·
Spring/Spring Data Jpa
1. persist 와 merge save : 엔티티를 새로 저장하거나 변경 사항을 업데이트 한다. persist : 새로운 엔티티 객체를 영속성 컨텍스트에 추가한다. merge : 준영속 상태(detached)의 엔티티 객체를 받아 영속 상태로 전환한다. 여기서 준영속 상태는 엔티티가 현재 세션의 영속성 컨텍스트에 속하지 않는 상태를 의미한다. 즉, 데이터베이스에는 존재하지만 현재 세션에서는 관리되지 않는 상태이다. 2. Spring Data JPA에서의 동작 방식 Entity ID(식별자) 생성 전략 1) @GenerateValue : 호출 시점에 식별자가 없으므로 새로운 엔티티로 인식해서 persist가 정상 동작한다. 2) 직접할당 : 이미 식별자 값이 있는 상태로, merge가 호출된다. DB에..