JPA
- Java Persistence API
- 자바 진영의 ORM 기술 표준
- Object-relational mapping(객체 관계 매핑)
- 객체는 객체대로 설계 RDB 는 RDB 대로 설계하고 ORM 프레임워크가 중간에서 매핑한다.
구동 방식
- 어플리케이션은 하나의
엔티티 매니저 팩토리
를 전체에서 공유한다.
엔티티 매니저
는 쓰레드간에 공유하지 않느낟.
- JPA 의 모든 데이터 변경은 트랜잭션 안에서 실행된다.
성능 최적화 기능
- 1차 캐시와 동일성 보장
-> 같은 트랜잭션 안에서는 같은 엔티티를 반환한다 ( 1차 캐시에서 가져옴 )
- 트랜잭션을 지원하는 쓰기 지연
-> 트랜잭션을 commit
할때까지 INSERT SQL 을 모아놨다가 JDBC BATCH SQL 기능을 이용해서 한번에 SQL 을 DB 에 전송한다.
- 지연 로딩
-> 지연 로딩
: 프록시 객체를 이용해 실제 사용될 때 까지 로딩을 미룬다
-> 즉시 로딩
: JOIN SQL 로 한번에 연관된 객체까지 미리 댕겨온다.
기능
- 데이터베이스 방언
: JPA는 특정 DB에 종속되지 않는다.
: hibernate.dialect 속성에 DB 방언을 지정해주면 된다.
출처