본문 바로가기

JPA/Core3

EntityManager 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 계속 업데이트 할 예정입니다. 목차 EntityManager란? 1. EntityManager란? 엔티티를 저장하는 메모리상의 데이터베이스라고 볼 수 있습니다. 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 합니다. 하지만 EntityManagerFactory와 달리 Thread-Safe하지 않기 때문에 동시성 문제가 발생할 수 있습니다. 그래서 엔티티 매니저는 스레드간에 공유를 절대로 해서는 안 됩니다. 그래서 일반적으로 EntityManager를 @PersistenceContext로 스프링이 관리해주는 방식으로 사용합니다. @PersistenceContext를 사용해서 Enti.. 2021. 10. 13.
JPA 프록시 (for 지연 로딩) 개인 공부 목적으로 작성하였습니다. 아래 출처를 참고하여 작성하였습니다. 목차 Intro 프록시 기초 프록시 특징 프록시 객체의 초기화 과정 1. Intro JPA의 프록시 객체에 대해 알아보겠습니다. 2. 프록시 기초 프록시란 하이버네이트가 강제로 만든 가짜 클래스를 의미합니다. JPA에서는 em.find()말고, em.getReference()라는 메서드가 있습니다. em.find() 는 DB를 통해서 실제 엔티티 객체를 조회하는 메서드입니다. em.getReference() 는 DB 조회를 미루는 가짜(프록시) 엔티티 객체를 조회하는 메서드입니다. 즉, em.getReference()로 멤버를 조회하면, 실제로 필요한 시점에 데이터베이스에 쿼리가 나갑니다. 3. 프록시 특징 실제 클래스를 상속 받아.. 2021. 10. 10.
JPA Auditing 기능 개인 공부 목적으로 작성한 글입니다. 아래 출처를 참고하여 작성하였습니다. 목차 Intro JPA Auditing 이란? @EntityListeners(AuditingEntityListener.class) 3-1. @EntityListeners 3-2. AuditingEntityListener class @EnableJpaAuditing @CreatedDate @LastModifiedDate 1. Intro JPA에서 제공하는 Auditing 기능에 대해서 알아보겠습니다. 2. JPA Auditing 이란? Audit은 감시하다, 감사하다라는 뜻으로 Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다. 즉, 해당 데이터를 보고 있다가 생성 또는 수정이 발생하면 자동으로 값을 .. 2021. 10. 10.