이 글은 “JPA 프로그래밍 입문 (최범균 저)” 책 내용을 정리한 글입니다.

만약 저작권 관련 문제가 있다면 “gunjuko92@gmail.com”로 메일을 보내주시면, 바로 삭제하도록 하겠습니다.

JPA 프로그래밍 입문 - Chapter01

JPA란

  • DB 테이블과 자바 객체 사이의 매핑을 처리하기 위한 ORM 표준
  • JPA 스펙은 객체와 DB 사이의 매핑을 어떻게 설정하고, 어떻게 동작해야하는지를 기술한다.
  • JPA의 핵심은 매핑 설정을 이용해 쿼리를 직접 생성한다는 것이다.
    • 저장, 조회, 수정, 삭제 쿼리를 매핑 설정을 사용해서 알맞게 생성해준다.

JPA 프로바이더

  • JPA 구현체를 JPA 프로버이더라고 한다. 대표적으로 하이버네이트가 있다.
  • 각 프로바이더는 JPA 표준이 정의한 기능을 구현하고 있지만, 표준이 정하지 않은 확장 기능은 프로바이더마다 다르다.

JPA의 특징

  • 자바 객체와 DB 테이블 매핑 설정을 사용해서 SQL을 생성한다.
    • 장점 : DB 칼럼과 객체의 매핑이 변경되면 설정만 변경하면 된다. 따라서 유지보수가 편한다.
  • 객체를 위한 기능이 지원된다.
    • 테이블 칼럼 간의 참조관계를 객체 간의 연관으로 매핑하는 기능
    • 밸류 타입을 위한 매핑
    • 클래스 상속에 대한 매핑
    • 객체 모델을 중심으로 사고하는데 도움이 된다.
  • 객체를 이용해서 쿼리를 작성할 수 있는 JPQL을 지원한다.
  • 성능 향상을 위해 지연 로딩이나 즉시 로딩과 같은 기법을 제공한다. (이 외에도 2차 캐시 기능이 존재)

JPA를 잘못 사용하면 실행 속도가 오히려 느려질 수 있다. 또한 JPA가 항상 답은 아니다.