자바 ORM 표준 JPA 프로그래밍 - 기본편-1

존스노우·2021년 12월 29일
0

JPA

목록 보기
1/10

SQL 중심적인 개발의 문제점

무한 반복 , 지루한코드가 반복된다..

컬럼하나를 추가해야되면?? 인서트.. 셀럭트... 업데이트 다넣어줘야되지..

패러다임의 불일치 -> 객체 vs 관계형 데이터베이스..

상속같은경우 sql 경우.. 두번 인서트..
조회 할때도 조인하고 필요한거에 따라 다 따로 조회...

연관관계도 객체도 테이블에 맞춰서 모델링

객체 모델링 /자바 컬렉션

엔티티 신뢰문제

모든 객체를 미리 로딩할 수는 없다.

계층형 아키텍처 진정한 의미의 계층 분할이 어렵다.

이런 여러가지 이유로

많은 코드를 작성해야되고 데이터 중심적 개발을 할 수 밖에없다..

객체를 자바 컬렉션에 저장 하듯이 DB에 저장하기 위해

JPA -JAVA PERSISTENCE API 탄생

JPA 소개

ORM?

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

JPA는 표준 명세

jpa는 인터페이스의 모음

하이버네이트 , EclipseLink, DataNucleus 3가지 구현체

대부분 하이버네이트씀

JPA 패러다임 불일치 해결

신뢰할 수 있는 엔티티 계층

지연로딩을 이용해 객체 그래프를 자유롭게 탐색가능.

JPA의 성능 최적화 기능

  1. 1차 캐시와 동일성 보장

-- 같은 트랜잭션 안에서는 같은 엔티티반환 -> 약간의 조회 성능 향상. //많이 차이는 없다..
-- DB Isolation Level이 Read Commit 이어도 애플리케이션 에서 RepeatableRead 보장.

트랜잭션을 지원하는 쓰기 지연

지연 로딩 / 즉시 로딩

지연 로딩 : 객체가 실제 사용될 때 로딩
즉시 로딩: Join SQl로 한번에 연관된 객체까지 미리 조회

profile
어제의 나보다 한걸음 더

0개의 댓글