@PersistenceContext와 EntityManager

젼이·2024년 10월 30일

@PersistenceContext

설명

@PersistenceContext는 JPA에서 EntityManager를 주입하기 위해 사용되는 어노테이션이다.


기능

이 어노테이션을 통해 Spring 또는 Java EE 컨테이너가 해당 클래스에 EntityManager 인스턴스를 주입한다.


역할

특정 트랜잭션 내에서 하나의 영속성 컨텍스트를 유지하며, 동일한 데이터베이스 엔티티를 관리한다. 이 덕분에 같은 트랜잭션 내에서는 동일한 엔티티가 캐시되어 불필요한 DB에 접근을 줄일 수 있다.


사용 이유

  • Spring이 관리하는 트랜잭션 범위 안에서 EntityManage를 자동으로 생성하고 주입받기 위해 사용한다.
  • 개발자가 직접 EntityManagerFactory를 생성하거나 설정할 필요 없이, 필요한 시점에 영속성 컨텍스트에 접근할 수 있게 도와준다.




EntityManager

설명

EntityManager는 JPA에서 데이터베이스와 상호작용을 담당하는 핵심 객체이다.
SQL 쿼리 대신, 엔티티(객체)를 저장하거나 조회하고, 업데이트 또는 삭제하는 기능을 제공한다.


주요 기능

  • CRUD 작업 수행: 엔티티 생성, 조회, 수정, 삭제
    - persist(Object entity): 엔티티를 저장
    - find(Class entityClass, Object primaryKey): ID로 엔티티 조회
    - merge(Object entity): 엔티티를 갱신
    - remove(Object entity): 엔티티를 삭제
  • JPQL 실행:
    - SQL과 유사한 쿼리를 사용해 엔티티를 조회할 수 있다.

언제 사용하는가?

  • 트랜잭션 내에서 데이터베이스 작업을 수행할 때 사용한다.
  • JPA 기반 애플리케이션에서 데이터베이스에 직접적인 접근 업시 객체를 저장하고 관리할 때 필요하다.
  • 예를 들어, 웹 애플리케이션에서 사용자가 입력한 데이터를 저장하거나 조회할 때 사용한다.
profile
신입 개발자 임니당 : > (2025.02.05~)

0개의 댓글