[스프링 데이터]_05_스프링 데이터 JPA
스프링 데이터 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 기반으로 만들어졌다.
객체와 릴레이션 맵핑 문제
- 아이덴티티 문제
- 릴레이션에서 식별자 : id-primary key
- object에서 식별자 : hashcode, equals()
- 어떤 엔티티가 같아야 객체가 같다고 판단할 것인가?
- 상속관계 표현
- DB는 상속관계가 없다.
스프링 데이터 JPA
- JPA 표준 스펙을 아주 쉽게 사용할 수 있게끔 Spring Data로 추상화시켜 줌
- 구현체는 Hibernate를 사용
- JPA는 EntityManager로 감싸서 사용
-
스프링 데이터 JPA가 제공하는 인터페이스, 애노테이션을 사용해서 JPA를 쓰게 된다.
- Repository 빈 자동 생성
- 쿼리 메소드 자동 구현
- @EnableJpaRepositories (스프링 부트가 자동으로 설정 해줌.)
- SDJ(Spring Data JPA) → JPA → Hibernate → Datasource