JPA 어플리케이션 시작하기

반응형

JPA 어플리케이션 시작하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class App 
{
    public static void main( String[] args )
    {
        System.out.println"Hello World!" );
        
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabookmall02");
        
        EntityManager em = emf.createEntityManager();
        
        EntityTransaction tx = em.getTransaction();
        
        tx.begin();
        
        try {
            //Buiseness Logic
        } catch (Exception e) {
            e.printStackTrace();
            tx.rollback();
        }
 
        tx.commit();
        em.close();
        emf.close();
    }
}
 
cs


JPA 어플리케이션 생성 순서


 1. 엔티티 매니저 팩토리 생성 

EntityManagerFactory emf = Persistence.createEntityManagerFactory( "jpabookmall" );

 2. 엔티티 매니저 생성 

EntityManager em = emf.createEntityManager();

 3. 트랜잭션 받기 

EntityTransaction tx = em.getTransaction();

 4. 트랜젹션 시작 

tx.begin();

 5. 비지니스 코드 실행  

logic( em );

 6. 트랜잭션 커밋 

tx.commit();

 7. 엔티티 매니저 종료 

em.close();

 8. 엔티티 매니저 팩토리 닫기 

emf.close();



EntityManagerFactory

- EntityManager 생성해주는 EntityMangerFactroy 객체를 먼정 생성해야합니다.

- Persistence.xml 설정된 이름을 찾아 emf 만들어집니다.

- 여러 기반 객체를 생성하고, 커넥션 풀들을 생성하고 설정하기 때문에 비용이 아주 작업이므로, 보통 EntitiyManagerFactory 하나만 생성하고 공유해서 사용합니다.

- 어플을 종료할때 EntityManagerFactory 종료합니다..

 

EntityManger

- 데이터베이스의 CRUD 작업을 있습니다..

- 내부의 데이터 소스를 유지 하면서 데이터 베이스와 통신할 수 있습니다..

- 가상의 데이터베이스로 생각할 있습니다..

- 데이터 베이스 커넥션과 밀접한 관계가 있기 때문에 쓰레드 간의 공유나 재사용하면 안됩니다.

사용이 끝난 EntityManager 반드시 종료 해야합니다..

 

EntityTransaction

- JPA 항상 트랜잭션 안에서 CRUD 작업들을 해야 합니다..

- 트랜잭션 시작과 커밋사이에서 작업을 진행해야 하며, 작업 도중에 예외 발생 시에 rollback 하여 CRUD작업을 취소 있습니다.


728x90
반응형