JPA란

Sangkyeong Lee·2021년 5월 19일

[인프런]JPA

목록 보기
1/8

인프런 강의 < 자바 ORM 표준 JPA 프로그래밍 - 기본편 > 정리


JPA - Java Persistence API

  • 자바 진영의 ORM 기술 표준

동작

  • JPA는 애플리케이션과 JDBC 사이에서 동작

저장

조회

JPA 사용해야 하는 이유

  • SQL 중심개발에서 -> 객체 중심으로

  • 생산성(CRUD)

    • 저장: jpa.persist(member)
    • 조회: Member member = jpa.find(memberId)
    • 수정: member.setName("변경할 이름")
    • 삭제: jpa.remove(member)
  • 유지보수

    • 다음과 같은 상황에서 SQL을 하나하나 다 수정해야 된다.
  • 패러다임의 불일치 해결

    저장
    jpa.persist(album); // 개발자가 할일
    INSERT INTO ITEM .. // JPA가 처리 해줌
    INSERT INTO ALBUM .. // JPA가 처리 해줌
    
    조회
    Album album = jpa.find(Album.class, albumId); // 개발자가 할일
    SELECT ~~
        FROM ~~
        JOIN ~~ // JPA가 처리 해줌
    
    연관관계 저장
    member.setTeam(team);
    jpa.persist(member);
    
    객체 그래프 탐색
    Member member = jpa.find(Member.class, memberId);
    Team team = member.getTeam();
  • 성능

    • 1차 캐시와 동일성 보장

      1. 같은 트랜잭션 안에서는 같은 엔티티 반환

      2. DB Isolation Level이 Read Commit이어도 애플리케이션에서 Repeatable Read 보장

        String memberId = "100";
        Member m1 = jpa.find(Member.class, memberId); //SQL
        Member m2 = jpa.find(Member.class, memberId); //캐시
        
        println(m1 == m2) // true
    • 트랜잭션을 지원하는 쓰기 지연

      • INSERT


      • UPDATE

    • 지연 로딩: jpa에서 옵션으로 언제든지 바꿀 수 있음

      • 지연 로딩: 객체가 실제 사용될 떄 로딩
      • 즉시 로딩: JOIN SQL로 한번에 연관된 객체까지 미리 조회
  • 데이터 접근 추상화와 벤더 독립성

  • 표준


< 자료 출처: 자바 ORM 표준 JPA 프로그래밍 - 기본편 >

profile
💻Backend Developer

0개의 댓글