JPA
JPA에서 CRUD
문자메일
2022. 4. 6. 01:54
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으로 연관된 객체까지 미리 조회