Jpa

1. JPA 란?

배고픈 징징이 ㅣ 2023. 1. 19. 13:53

[JPA란?]

1. 자바 진영의 ORM(Object Realeation Mapping) 기술 표준

2. 기존의 반복적인 CRUD SQL을 알아서 처리해줌 → 개발자는 어떤 SQL이 실행될지 생각만 하면 됨

3. 객체 모델링과 RDB(관계형 데이터베이스) 사이의 차이점 해결

4. 지연 로딩 사용 : 실제 객체를 사용하는 시점까지 DB 조회를 미룸.

UserInfo userInfo = jpa.find(UserInfo.class, userid); //처음 조회 시점, SELECT UserInfo SQL 실행

Order order = userInfo.getUserInfo();
order.getRegDate(); // order 사용 시점, SELECT Order SQL 실행

5. 같은 트랜잭션일 때 같은 객체가 조회되는 것을 보장

- DB의 구분 방법 : 키값으로 ROW 구분

- 객체의 구분 방법 : 동일성 비교(==, 객체 인스턴스의 주소값 비교)

                                동등성 비교(equals(), 객체 내부의 값 비교)

UserInfo userInfo1 = userService.getUserInfo(userid);
UserInfo userInfo2 = userService.getUserInfo(userid);
userInfo1 == userInfo2 //false

UserInfo userInfo3 = jpa.find(UserInfo.class, userid);
UserInfo userInfo4 = jpa.find(UserInfo.class, userid);
userInfo3 == userInfo4 //true
반응형

'Jpa' 카테고리의 다른 글

번외. QueryDSL & JPA  (0) 2023.01.19
5. 연관관계 매핑  (0) 2023.01.19
4. 엔티티 매핑  (0) 2023.01.19
3. 영속성(Persistence) 관리  (0) 2023.01.19
2. JPA 설정 및 객체 매핑, 기본 어플리케이션 세팅  (0) 2023.01.19