Free Lines Arrow
본문 바로가기
DataBase/JPA

[JPA] JPA를 사용하는 이유

by skahn1215 2021. 7. 27.
728x90
반응형

JPA 를 써야 하는이유

앞서 JPA를 왜 배워야 하는지 설명을 하였다.

그렇다면 JPA를 많이 써야 되는 이유가 무엇일까?

 

 

SQL 중점 개발의 어려운점

sql 을 중점으로 개발 하면 다음과 같은 어려운 점이 있다.

 

SQL 중심적인 개발이 된다.


- DB 는 SQL 언어만 이해할수 있다.

 

 

 

 

반복작업과 지루한 작업이다.

- CRUD를 테이블 마다 작성해 줘야한다.

 

 

 

객체 CRUD

- 객체를 DB 에 저장한 쿼리를 완성후 필드에 추가로 값이 추가 된다면?
- 전부다 찾아서 고쳐 줘야 한다.

 

 

객체를 관계형 데이터베이스에 저장할 경우

반드시 SQL 변환 과정을 거쳐야 된다.

 

 

 

 

 

객체지향적인 설계를 했을때 추가, 조회, 비교 의 어려움

- 객체 를 저장시 SQL 문으로 변환 참조 타입을 저장하기 까다롭다.

- 조회 했을경우 동일한 아이디로 2개를 조회후 비교 했을 경우 당연 다르다.

String memberId = "100";
Member member1 = memberDAO.getMember(memberId);
Member member2 = memberDAO.getMember(memberId);
member1 == member2; //다르다.
class MemberDAO {
 
 
public Member getMember(String memberId) {
 String sql = "SELECT * FROM MEMBER WHERE MEMBER_ID = ?";
 ...
 
//JDBC API, SQL 실행
 
return new Member(...);
 }
}​

 

 

 

 

엔티티 신뢰 문제

모든 값이 정확하게 있는지 신뢰 하기가 어렵다.
아래 예제에서 memberDAO.find(Lond id) find가 정확하게 구현되어있는지 불확실 하다

class MemberService {
 ...
 
public void process() {
 Member member = memberDAO.find(memberId);
 member.getTeam(); //???
 member.getOrder().getDelivery(); // ???
 }
}​

 

 

 

 

참고

이런 어려운 이유로 많은 고민을 통해 JPA 가 탄생 하였다.

JPA 를 통해 객체를 DB 에 CRUD하는 방법을 배워보자

 

 

 

참고:

https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21683?speed=1&tab=note 

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

728x90
반응형

'DataBase > JPA' 카테고리의 다른 글

[JPA] 영속성 컨텍스트  (0) 2021.07.30
[JPA] JPA CRUD 기본  (0) 2021.07.30
[JPA] JPA 환경설정  (0) 2021.07.29
[JPA] JPA 란?  (0) 2021.07.28
[JPA] JPA를 배워야 하는이유  (0) 2021.07.27

댓글