JPA에 대해 알아보자 : 2장 JPA 시작

ParkIsComing·2023년 5월 22일

Spring

목록 보기
7/21

책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다.
앞부분에 나오는 환경세팅 부분은 생략합니다.

JPA 설정 정보

JPA 표준 속성

  • javax.persistence.jdbc.driver : JDBC 드라이버
  • javax.persistence.jdbc.user :
  • javax.persistence.jdbc.password :
  • javax.persistence.jdbc.url : db 접속 url

하이버네이트 속성

  • hibernate.dialect: 데이터베이스 방언(dialect) 설정'
  • hibernate.show_sql
  • hibernate.format_sql
  • hibernate.use_sql_comments : 쿼리 출력시 주석도 출력
  • hibernate.id.new_generator_mappings : JPA 표준에 맞춘 새로운 키 생성 전략 사용

데이터베이스 방언

데이터베이스마다 다음과 같은 면에서 차이점을 가진다.

  • 데이터 타입
  • 다른 함수명
  • 페이징 처리
    이렇게 SQL 표준을 지키지 않거나 특정 DB만의 고유한 기능을 JPA에서는 방언이라고 한다.

애플리케이션 개발

엔티티 매니저 설정

엔티티 매니저 팩토리 생성

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

엔티티 매니저 생성

EntityManager em = emf.createEntity();

엔티티 매니저 종료

em.close()

엔티티 매니저 팩토리 종료

emf.close()

트랜잭션 관리

EntityTransaction tx = em.getTransaction();

try{
	tx.begin();
    logic(em); // 비즈니스 로직 실행
    tx.commit(); //트랜잭션 커밋
}catch{
	tx.rollback(); //예외 발생시 트랜잭션 롤백
}

비즈니스 로직

엔티티 매니저를 통해 등록,수정,삭제,조회 작업이 이뤄짐.

JPQL

애플리케이션이 필요한 데이터만 DB에 불러오려면 결국 SQL을 사용해야 한다.
JPA는 JPQL을 이용하여 이를 해결한다.

  • JPQL은 SQL과 문법이 거의 유사하다.(SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 사용 가능)
  • JPQL은 엔티티 객체를 대상으로 쿼리한다.
  • SQL은 데이터베이스 테이블을 대상으로 쿼리한다.

0개의 댓글