[스프링 데이터]_05_스프링 데이터 JPA

less than 1 minute read

스프링 데이터 5부: 스프링 데이터 JPA

ORM(Object-Relational Mapping)과 JPA (Java Persistence API)

  • 객체와 릴레이션을 맵핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크
  • http://hibernate.org/orm/what-is-an-orm/
  • JPA: ORM을 위한 자바 (EE) 표준

스프링 데이터 JPA

  • Repository 빈 자동 생성
  • 쿼리 메소드 자동 구현
  • @EnableJpaRepositories (스프링 부트가 자동으로 설정 해줌.)
  • SDJ(Spring Data JPA) → JPA → Hibernate → Datasource

ORM(Object-Relational Mapping)과 JPA (Java Persistence API)

  • 객체와 릴레이션을 맵핑할 때 발생하는 개념적 불일치를 해결하는 프레임워크
  • http://hibernate.org/orm/what-is-an-orm/
  • JPA: ORM을 위한 자바(EE) 표준
  • 대부분의 자바 표준이 Hibernate 기반으로 만들어졌다.

객체와 릴레이션 맵핑 문제

  1. 아이덴티티 문제
    • 릴레이션에서 식별자 : id-primary key
    • object에서 식별자 : hashcode, equals()
    • 어떤 엔티티가 같아야 객체가 같다고 판단할 것인가?
  2. 상속관계 표현
    • DB는 상속관계가 없다.

스프링 데이터 JPA

  • JPA 표준 스펙을 아주 쉽게 사용할 수 있게끔 Spring Data로 추상화시켜 줌
  • 구현체는 Hibernate를 사용
  • JPA는 EntityManager로 감싸서 사용
  • 스프링 데이터 JPA가 제공하는 인터페이스, 애노테이션을 사용해서 JPA를 쓰게 된다.

  • Repository 빈 자동 생성
  • 쿼리 메소드 자동 구현
  • @EnableJpaRepositories (스프링 부트가 자동으로 설정 해줌.)
  • SDJ(Spring Data JPA) → JPA → Hibernate → Datasource