entitymanager
-
JPA에서 신규 엔티티 처리: EntityManager.persist()와 JpaRepository.save()의 차이점 파악하기JPA 2024. 4. 30. 22:08
동일한 신규 Entity를 생성하여 EntityManager.persist()와 JpaRepository.save()를 통해 영속화 시켰을 때의 동작과 결과가 다를 때가 있다. 이에 대해 알아보자.EntityManager.persist()persist()를 호출할 때 전달된 엔티티 인스턴스 자체가 영속 상태가 되어 변화를 추적한다. 이 메소드는 반환값이 없으며, 저장하는 객체와 영속성 컨텍스트에 들어간 객체가 동일한 참조를 유지한다.JpaRepository.save()save() 메소드는 내부적으로 EntityManager의 persist() 또는 merge()를 호출할 수 있다. 이 메소드의 행동은 전달된 엔티티의 상태에 따라 달라진다.신규 엔티티일 경우: 일반적으로 persist()가 호출되어 엔티티..