[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 트랜잭션 조인을 요청한다.
댓글 없음:
댓글 쓰기