[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 |