ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. JPA 시작
    Back-End/JPA 2022. 4. 3. 13:24

    데이터베이스 방언

    JPA는 특정 데이터베이스에 종속적이지 않은 기술이다.

    → 데이터베이스를 손쉽게 교체할 수 있다.

    방언(Dialect) 이란?

    • 특정 데이터베이스만의 고유한 기능
    • 대부분의 JPA 구현체는 다양한 데이터베이스 방언 클래스를 제공하여 데이터베이스 방언을 처리해준다.
    • 예시
      • H2: org.hibrenate.dialect.H2Dialect
      • 오라클 10g: org.hibrenate.Oracle10gDialect
      • MySQL: org.hibrenate.MySQL5InnoDBDialect

     

    엔티티 매니저 설정

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

    Persistence 클래스를 사용하여 엔티티 매니저 팩토리를 생성

    엔티티 매니저 팩토리는 애플리케이션 전체에서 딱 한 번만 생성하고, 공유하여 사용해야 한다.

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

    2. 엔티티 매니저 생성

    엔티티 매니저 팩토리에서 엔티티 매니저를 생성한다.

    엔티티 매니저

    • 데이터베이스에 CRUD
    • 내부에 데이터베이스 커넥션을 유지하면서, 데이터베이스와 통신한다.
    • 스레드 간에 공유하거나 재사용하면 안 된다.
    EntityManager em = emf.createEntityManager();

     

    트랜잭션 관리

    JPA에서 데이터를 변경할 때는 항상 트랜잭션 안에서 해야한다.

    트랜잭션 API는 엔티티 매니저로부터 받아올 수 있다.

    EntityTransaction tx = em.getTransaction();
    
    try{
    	tx.begin();
    	// 비즈니스 로직 실행
    	tx.commit();
    } catch (Exception e){
    	tx.rollback();
    }

     

    비즈니스 로직

    em.persist(member); // 등록
    
    member.setAge(20); // 수정
    
    // 조회
    Member findMember = em.find(Member.class, id);
    List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList();
    
    // 삭제
    em.remove(member);
    

     

    JPQL

    Java Persistence Query Language

    엔티티 객체를 대상으로 쿼리하는 개게 지향 쿼리 언어

    사용법

    em.createQuery(JPQL, 반환 타입).getResultList();
    

    → 자세한 내용은 10장

     

     

     

     

     

     

    728x90

    'Back-End > JPA' 카테고리의 다른 글

    6. 다양한 연관관계 매핑  (0) 2022.04.30
    5. 연관관계 매핑 기초  (0) 2022.04.23
    4. 엔티티 매핑  (0) 2022.04.17
    3. 영속성 관리  (0) 2022.04.11
    1. JPA 소개 - 패러다임의 불일치  (0) 2022.03.30

    댓글

Designed by Tistory.