JPA/개념

[JPA] JPA 기본 동작 및 JPQL 소개

Boradoris 2023. 2. 21. 16:03

객체와 테이블 생성 및 매핑

 

 

  • @Entity: JPA가 관리할 객체
  • @Id: 데이터베이스 PK와 매핑

 

엔티티 매니저 팩토리, 엔티티 매니저, 트랜잭션

 

  • EntityManagerFactory : EntityManager 생성
  • EntityManager : Entity 관리
  • EntityTransaction : 하나의 작업 단위

 

주의)

  • 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유
  • 엔티티 매니저는 스레드 간에 공유 X (사용하고 버려야 한다). 
  • JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

 

 

JPQL 소개

  • 가장 단순한 조회 방법
    • EntityManager.find() 
    • 객체 그래프 탐색(a.getB().getC()) 
  • JPA를 사용하면 엔티티 객체를 중심으로 개발
  • 문제는 검색 쿼리
  • 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색
  • 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능
  • 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 → JPQL

 

 

JPQL 특징

  • 객체 지향 SQL 
  • JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공
  • SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원
  • JPQL은 엔티티 객체를 대상으로 쿼리 ↔ SQL은 데이터베이스 테이블을 대상으로 쿼리
  • 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리
  • 특정 데이터베이스 SQL에 의존 X 

 


출처 : https://www.inflearn.com/course/ORM-JPA-Basic

'JPA > 개념' 카테고리의 다른 글

[JPA] 프로젝트 환경설정  (0) 2023.02.21
[JPA] JPA 개념  (0) 2023.02.20