piczo.log
로그인
piczo.log
로그인
JPA
강지영
·
2022년 7월 23일
팔로우
0
JPA
Java
ORM
Spring
0
Spring
목록 보기
2/5
ORM(Object Relational Mapping)
객체 관계 매핑
- 객체는 객체대로 설계하고 관계형DB는 관계형DB대로 설계하는 것을 의미
JPA(Java Persistence API)
JPA는 자바의 ORM(Object Relational Mapping) 기술 표준으로
인터페이스의 모음
JPA의 스펙은 자바의 객체(데이터)와 데이터베이스를 어떻게 매핑하고 동작해야 하는 지 정의하고 있다.
Application 필드값들이 JPA를 통해서 데이터베이스의 저런 컬럼들과 매핑을 시켜주는 이런 작업을 우리는 JPA에서 진행을 하고 있다
JPA의 구현체는 EclipseLink, Hibernate, CataNucleus가 있는 데 Hibernate가 현재 가장 많이 사용되고 있다.
JPA를 왜 사용해야 하는 가?
SQL 중심적인 개발에서 객체 중심으로 개발
(SQL중심으로 개발하면 모든 쿼리를 다 작성해야 함 => 복잡해짐)
생산성 => CRUD를 한 줄로 간단하게 작성이 가능
저장 : jpa.persist(변수)
조회 : Member member = jpa.find(memberId)
수정 : member.setName("변경할 이름")
삭제 : jpa.remove
유지보수
기존 : 필드 변경 시, 모든 SQL을 수정해야 됨
JPA : 필드만 추가하면 SQL을 JPA가 처리
패러다임의 불일치 해결
상속, 연관관계, 객체 그래프 탐색, 비교하기 같은 패러다임 불일치를 해결
여기서 JPA와 상속을 예를 들어 설명하자면 >
저장 : 개발자가 jpa.persist(객체)를 넣으면
조회 : 개발자가 타입을 넣고 객체를 넣으면 JPA 식별자와 쿼리도 다 들고 나옴
성능
1차 캐시와 동일성(identity) 보장
같은 트랜잭션안에서 조회하면 DB에서 데이터를 가져오지 않고 캐쉬에서 가져옴
지연 로딩과 즉시 로딩
지연 로딩 : 개체가 실제 사용될 때 로딩
즉시 로딩 : JOIN SQL로 한 번에 연관된 객체까지 미리 조회
JPA에서 설정하나를 바꾸면 이것이 가능하다.
강지영
Hello World!
팔로우
이전 포스트
Java 기초 문법, Spring 기초 사용법
다음 포스트
RDBMS, Spring Data JPA, REST API
0개의 댓글
댓글 작성