jpa save select

    JpaRepository에서 save시 select 쿼리가 먼저 실행되는 이유

    Spring Data Jpa - JpaRepository에서 save시 select 쿼리가 먼저 실행되는 이유 Entity의 id가 GeneratedValue가 sequence(또는 identity)가 아니고, 직접 id를 set 할 때, 하이버네이트에서 엔티티 Id 생성 전략이, 개발자가 직접 Id를 만들 고 엔티티 객체 저장 시 select 쿼리가 나간다. 결론부터 JpaRepository.save(entity) 를 이용해서 엔티티 객체를 저장할 때, entityManager.persist or entityManager.merge 를 호출한다. 이 때, JpaRepository의 구현체인 SimpleJpaRepository는 isNew 메서드를 통해 id값이 없으면 새 엔티티라고 판단하고, em.pe..