본문 바로가기
JPA & Querydsl

JPA는 무엇일까?

by 창따오 2023. 12. 4.
728x90

 

JPA란?

- Java Persistence API
-
자바 진영의 ORM 기술 표준


ORM이란?

- Object-relational mapping(객체 관계 매핑)
-
객체는 객체대로 설계
- 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑
- 대중적인 언어에는 대부분 ORM 기술이 존재


출처 : 영한님 JPA강의

데이터베이스 방언

JPA는 특정 데이터베이스에 종속 X
각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름

가변 문자: MySQL VARCHAR, Oracle VARCHAR2 문자열을 자르는 함수: SQL 표준은 SUBSTRING(), Oracle

SUBSTR()
 페이징: MySQL LIMIT , Oracle ROWNUM

방언: SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능

출처: 영한님 JPA강의

주의

엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에 서 공유

엔티티 매니저는 쓰레드간에 공유X (사용하고 버려야 한다). JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

 

JPQL

JPA를 사용하면 엔티티 객체를 중심으로 개발 문제는 검색 쿼리

검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능

애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검 색 조건이 포함된 SQL이 필요

 

JPA를 왜 사용해야 하는가?

- SQL 중심적인 개발에서 객체 중심으로 개발 - 생산성이 증가된다.
- 유지보수가 편리하다
- 패러다임의 불일치를 해결할 수 있다.

- 성능이 좋다.