2016년 8월 11일 목요일

(방학특강)[JPA강좌, 엔티티매니저, EntityManager,JPA엔티티] - 스프링실무교육학원

(방학특강)[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 트랜잭션 조인을 요청한다.

댓글 없음:

댓글 쓰기