JPA

1월 3일 JPA , Java Persistence API

Chaerin Yoo 2023. 1. 3. 15:01

JPA , Java Persistence API

자바 진영의 ORM 기술표준

 

ORM 은 객체와 RDB 두 기능 위에 있는 기술로

둘다 알아야 JPA를 사용할 수 있다,

 

ORM 이란?

Object-relation mapping , 객체 관계 매핑 , 객체 + 관계를 매핑

-객체는 객체대로 설계

-관계형 데이터베이스는 관계형 데이터베이스 대로 설계

-ORM프레임 워크가 중간에서 매핑

-대중적인 언어에는 대부분 ORM기술이 존재

 

JPA는 애플리케이션과 JDBC사이에서 동작한다.

Java > JPA > JDBC API > SQL > 결과 반환 > JDBC AP
I > JPA > java

 

JPA동작 - 저장 

MemberDAO > persist(여기에 객체 저장) > JPA(객체를 넘겨받음)

이때 JPA에선 넘겨받은 객체를 대상으로 아래와 같은 작업을 한다.

-객체분석

-적절한 SQL 생성

-JPA가 JDBC API를 이용해 DB와 통신

-결과를 반환받는다.

-패러다임의 불일치 해결.

 

DAO에서 객체(persist)나 ID값을 JPA에게 넘겨주고 

JPA는 목적에 맞는 API를 생성 , 이후 JDBC API를 사용

결과값을 반환받고 , 패러다임의 불일치 해결

 

JPA는 표준명세

-JPA는 인터페이스의 모음이다.

-JPA는 2.1표준 명세를 구현한 3가지 구현체

-하이버네이트 , 이클립스 링크 . 데이터너클래스

 

JPA를 사용해야 하는 이유

-SQL 중심적인 개발에서 객체 중심으로 개발

-생산성

-유지보수

-패러다임 불일치 해경

-성능

-데이터 접근 추상화와 벤더 독립성

-표준

 

생산성 JPA의 CRUD , API를 호출하면 된다.

저장 : JPA.persist(member)

조회 : Member member = jpa.find(memberId)

수정 : member.setName("변경할 이름") = 자동으로 update쿼리가 나온다.

삭제 : jpa.remove(member)

 

수정이 가능한 이유는 List에서 객체를 불러와 set 한뒤 다시 안넣어줘도 Lsit에 이미 객체가 존재하는 이유와 같다.

즉 불러와서 수정된 시점에서 수정이 완료된것,