Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- spring
- regex
- Regular expression
- REACTJS
- update
- current_date
- Node
- mysql 5.5
- Express
- java
- MySQL
- Webpack
- REACT
- migration
- git
- upgrade
- log4j2
- eslint
- Chunk
- JavaScript
- Spring Batch
- spring cloud
- npm
- Effective Java
- expire_logs_days
- log_bin
- nodejs
- 퀵소트
- 정규표현식
- Effective Java 3/e
Archives
- Today
- Total
내 세상
[Spring] Spring in Action, Chapter 11. 객체 관계형 매핑을 통한 데이터 퍼시스팅 본문
Technical/Spring
[Spring] Spring in Action, Chapter 11. 객체 관계형 매핑을 통한 데이터 퍼시스팅
sga8 2019. 7. 30. 14:43728x90
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 인터페이스를 통해 수행하게 됨.
- Session
11.2 스프링과 자바 퍼시스턴스 API
- JPA(Java Persistent API) - 차세대 Java Persistent 표준.
- 스프링 with JPA 첫 단계
- Spring Appl. Context에 Entity 관리자 factory를 빈으로 설정하는 것.
- Application-Managed (애플리케이션 관리형)
- Appl.이 entity 관리자 팩토리에 직접 entity 관리자를 요청함으로써 entity 관리자가 생성되는 유형
- 설정 정보 대부분을 persistence.xml 설정파일로부터 가져옴.
- Container-Managed (컨테이너 관리형)
- 자바 EE 컨테이너에 의해 생성되고 관리되는 Entity 관리자
- Application-Managed (애플리케이션 관리형)
- Spring Appl. Context에 Entity 관리자 factory를 빈으로 설정하는 것.
11.3 스프링 데이터를 사용한 자동 JPA 저장소
- 저장소 메소드 = 동사(verb) + 선택 대상(optional subject) + 단어 By 및 조건 (predicate)
728x90