[JPA강좌,
엔티티매니저, EntityManager,JPA엔티티]
엔티티 매니저(JPA Entity Manager)
Ø JPA
EntityManagerFactory
n 데이터베이스와의 상호 작용을 위해 EntityManager를 생성하기 위해 사용되는데 엔티티 매니저 팩토리는 애플리케이션 전체에서 딱 한번만
생성하고 공유해서 사용 해야한다.
Ø JPA
EntityManager
n 도메인 객체를 테이블로 변환, 엔티티와 관련된 모든
일을 한다.(저장, 조회, 수정, 삭제),
DB에서 엔티티를 가져오거나 생성, 삭제, 수정하는 일은 모두 EntityManager를 통해 이루어
진다.
n 엔티티 저장 요청시 엔티티 객체를 생성하여 DB에
저장하며 SQL과 같은 CRUD 오퍼레이션을
제공한다.
n EntityManager의 인스턴스는 영속성
컨텍스트(Persistence Context)를 나타내며 EntityManagerFactory를 통해서 얻는다.

n 트랜잭션 범위 EntityManager : 트랜잭션
기간동안 엔티티는 attach 상태이고 종료 후 자동으로 detach상태가 된다.

n 확장 범위 EntityManager : 여러 트랜잭션을
걸쳐 라이프 사이클이 지속되며 유상태 세션빈과 함께 사용되며 빈 인스턴스가 살아있는 동안 계속된다. 빈 자체가 제거되거나 EntityManager가 종료되어야
끝난다.

Ø JPA
EntityManager Interface
- persist(Object entity) : 엔티티를 DB로 저장
- merge(T entity) :
EntityManager의 영속성 컨텍스트로 엔티티를 병합
- remove(Object entity) : DB에서 엔티티를 삭제
- find(Class<T> entityClass, Object
primaryKey) : 주키로 엔티티 인스턴스를 찾는다.
- flush() :
EntityManager의 영속성 컨텍스트안의 엔티티를 DB와 동기화 한다.
- setFlushMode(FlushModeType
flushMode) : EntityManager의 지속성 컨텍스트의 flush 모드를 설정한다.(AUTO,
COMMIT)
- getFlushMode() : 현재의 flush 모드를 리턴한다.
- refresh(Object entity) : DB의 엔티티를 리셋
- createQuery(String jpsqString) : JPQL문을 이용하여 동적 질의문 생성
- createNamedQuery(String name) : 질의 인스턴스 생성
- createNativeQuery(String
sqlString) : 원시 SQL문을
이용하여 동적 질의 생성
- close() :
EntityManager를 종료한다.
- isOpen() :
EntityManager의 오픈여부 확인
- getTransaction() : 트랜잭션 객체를 검색한다.
- joinTransaction() : 기존 JTA 트랜잭션 조인을 요청한다.
댓글 없음:
댓글 쓰기