내 세상

[Spring] Spring in Action, Chapter 11. 객체 관계형 매핑을 통한 데이터 퍼시스팅 본문

Technical/Spring

[Spring] Spring in Action, Chapter 11. 객체 관계형 매핑을 통한 데이터 퍼시스팅

sga8 2019. 7. 30. 14:43
728x90
반응형

11.1 스프링과 하이버네이트 통합

  • 지연 로딩(lazy loading) : 우리가 필요로 하는 실제 데이터만 불러올 수 있음. 필요한 부분만 가져오는 것.
  • 조기 인출(eager fetching) : 지연 로딩의 반대개념.  한 번의 쿼리로 전체 객체 구조를 가져올 수 있음.
  • 캐스케이딩(cascading) : 테이블 변경 시 다른 테이블도 변경되어야 하는 경우가 있을 때 작동하는 것.
    → 객체 관계 매핑 (ORM: Object Relational Mapping) : 많은 양의 코드를 줄이고 개발 시간을 단축함.
  • 스프링은 다수의 ORM 프레임 워크를 지원함 (Hibernate, iBATIS, Apache OJB, JDO, TopLink, JPA 등)
  • 하이버네이트는 오픈 소스 퍼시스턴스 프레임워크 (+ cahcing, lazy loading, eager fetching, distributed caching)
    • Session
      • DB로부터 객체에 대한 Save, Update, Delete, Load와 같은 기본적인 데이터 액세시 기능 제공
      • Appl.의 DAO는 모든 퍼시스턴스 관련 요구 사항을 하이버네이트의 Session 인터페이스를 통해 수행하게 됨.

11.2 스프링과 자바 퍼시스턴스 API

  • JPA(Java Persistent API) - 차세대 Java Persistent 표준.
  • 스프링 with JPA 첫 단계
    • Spring Appl. Context에 Entity 관리자 factory를 빈으로 설정하는 것.
      1. Application-Managed (애플리케이션 관리형)
        1. Appl.이 entity 관리자 팩토리에 직접 entity 관리자를 요청함으로써 entity 관리자가 생성되는 유형
        2. 설정 정보 대부분을 persistence.xml 설정파일로부터 가져옴.
      2. Container-Managed (컨테이너 관리형)
        1. 자바 EE 컨테이너에 의해 생성되고 관리되는 Entity 관리자

 

 

11.3 스프링 데이터를 사용한 자동 JPA 저장소

  • 저장소 메소드 = 동사(verb) + 선택 대상(optional subject) + 단어 By 및 조건 (predicate)
728x90
반응형