본문 바로가기
JPA

JPA에서 CRUD

by 문자메일 2022. 4. 6.

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

댓글