JPA에서 CRUD
- 저장 : jpa.persist(Object)
- 조회 : Object object = jpa.find(Object.class, objectId)
- 수정 : object.setName("변경 이름")
- 삭제 : jpa.remove(object)
위 인터페이스만 사용하면 해당 변경사항에 맞는 DB 업데이트 쿼리가 나간다.
JPA 비교하기
String memberId = 100;
Member member1 = jpa.find(Member.class, memberId);
Member member2 = jpa.find(Member.class, memberId);
member1 == member2; // 같다.
동일한 트랜잭션에서 조회한 엔티티는 같음을 보장
JPA의 성능 최적화
- 1차 캐시와 동일성 보장
- 같은 트랜잭션 안에서는 같은 엔티티를 반환
- 트랜잭션을 지원하는 쓰기 지연
- 트랜잭션을 커밋할 때가지 INSERT SQL을 모은다
- JDBC BATCH SQL 기능을 사용해서 한번에 SQL 전송
- 지연 로딩(Lazy Loading)
- 지연 로딩 : 객체가 실제 사용될 때 로딩
- 즉시 로딩 : JOIN SQL으로 연관된 객체까지 미리 조회
'JPA' 카테고리의 다른 글
스프링 데이터 JPA 페이징과 정렬 (0) | 2022.05.06 |
---|---|
순수 JPA 페이징과 정렬 (0) | 2022.05.06 |
JPA 모델링 설계하는 순서 (0) | 2022.04.09 |
엔티티 매핑 (0) | 2022.04.09 |
JPA 동작 확인 (0) | 2022.04.06 |
댓글