bellpro.log
로그인
bellpro.log
로그인
JPA(ORM)-2022.01.10
Jonguk Kim
·
2022년 1월 9일
팔로우
0
JPA
ORM
0
JPA
목록 보기
1/1
1. JPA
Java Persistence API
자바 진영의 ORM 기술 표준
JPA는 애플리케이션과 JDBC 사이에서 동작
2. ORM
Object-relational mapping(객체 관계 매핑)
객체는 객체대로 설계
관계형 데이터베이스는 관계형 데이터베이스대로 설계
ORM 프레임워크가 중간에서 매핑
대중적인 언어에는 대부분 ORM 기술이 존재
3. JPA 사용 이유
SQL 중심적인 개발에서 객체 중심으로 개발
생산성
저장: jpa.persist(member)
조회: Member member = jpa.find(memberId)
수정: member.setName(“변경할 이름”)
삭제: jpa.remove(member)
유지보수
기존: 필드 변경시 모든 SQL 수정
JPA: 필드만 추가하면 됨, SQL은 JPA가 처리
패러다임의 불일치 해결
JPA와 상속
저장
조회
JPA와 연관관계
JPA와 객체 그래프 탐색
JPA와 비교하기
성능
1차 캐시와 동일성(identity) 보장
같은 트랜잭션 안에서는 같은 엔티티를 반환 (약간의 조회 성능 향상)
DB Isolation Level이 Read Commit이어도 애플리케이션에서 Repeatable Read 보장
트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
트랜잭션을 커밋할 때까지 INSERT SQL을 모음
JDBC BATCH SQL 기능을 사용해서 한번에 SQL 전송
UPDATE, DELETE로 인한 로우(ROW)락 시간 최소화
트랜잭션 커밋 시 UPDATE, DELETE SQL 실행하고, 바로 커밋
지연 로딩(Lazy Loading)
지연 로딩: 객체가 실제 사용될 때 로딩
즉시 로딩: JOIN SQL로 한번에 연관된 객체까지 미리 조회
실무: 지연 로딩으로 코드 작성 -> 필요 시 즉시 로딩으로 변경
데이터 접근 추상화와 벤더 독립성
표준
Jonguk Kim
Just Do It
팔로우
0개의 댓글
댓글 작성