HIBERNATE - Relational Persistence for Idiomatic Java

Hibernate Reference Documentation

3.0.2

역자 : 김종대(jdkim528@korea.com)


목 차

서두
1. Tomcat 으로 빠른 시작
1.1. Hibernate로 시작하기
1.2. 첫 번째 persistent class
1.3. cat 매핑하기
1.4.cat들에 작업하기
1.5. 마지막
2. 아키텍처
2.1. 개요
2.2. 인스턴스 상태들
2.3. JMX 통합
2.4. JCA 지원
3. 구성
3.1. 프로그램 상의 구성
3.2. SessionFactory 얻기
3.3. JDBC 커넥션들
3.4. 옵션 구성 프로퍼티들
3.4.1. SQL Dialects
3.4.2. Outer Join 패칭
3.4.3. Binary Streams
3.4.4. Second-level 캐시와 query 캐시
3.4.5. Query Language Substitution
3.4.6. Hibernate statistics
3.5. 로깅
3.6. NamingStrategy 구현하기
3.7. XML 구성 파일
3.8. J2EE 어플리케이션 서버 통합
3.8.1. 트랜잭션 방도 구성
3.8.2. JNDI-bound SessionFactory
3.8.3. 자동적인 JTA 및 Session 바인딩
3.8.4. JMX 배치
4. 영속 클래스들
4.1. 간단한 POJO 예제
4.1.1. 영속 필드들에 대한 accessor들과 mutator들을 선언하라
4.1.2. 아규먼트 없는 생성자를 구현하라
4.1.3. identifier 프로퍼티를 제공하라(옵션)
4.1.4. non-final 클래스들을 선호하라(옵션)
4.2. 상속 구현하기
4.3. equals() 과 hashCode() 구현하기
4.4. 동적인 모형들
5. 기본 O/R 매핑
5.1. 매핑 선언
5.1.1. Doctype
5.1.2. hibernate-mapping
5.1.3. class
5.1.4. id
5.1.4.1. Generator
5.1.4.2. Hi/lo 알고리즘
5.1.4.3. UUID 알고리즘
5.1.4.4. Identity 컬럼들과 시퀀스
5.1.4.5. 할당된 식별자들
5.1.4.6. 트리거들에 의해 할당된 프라이머리 키들
5.1.5. composite-id
5.1.6. discriminator
5.1.7. version (옵션)
5.1.8. timestamp (옵션)
5.1.9. property
5.1.10. many-to-one
5.1.11. one-to-one
5.1.12. component, dynamic-component
5.1.13. properties
5.1.14. subclass
5.1.15. joined-subclass
5.1.16. union-subclass
5.1.17. join
5.1.18. key
5.1.19. column 요소와 formula 요소
5.1.20. import
5.1.21. any
5.2. Hibernate 타입들
5.2.1. 엔티티들과 value들
5.2.2. 기본 value 타입들
5.2.3. 맞춤형 value 타입들
5.3. SQL 인용부호 처리된 식별자들
5.4. Metadata 대안들
5.4.1. XDoclet 마크업 사용하기
5.4.2. JDK 5.0 주석들을 사용하기
6. 콜렉션 매핑
6.1. 영속 콜렉션들
6.2. 콜렉션 매핑들
6.2.1. 콜렉션 foreign 키들
6.2.2. 콜렉션 요소들
6.2.3. 인덱싱된 콜렉션들
6.2.4. 값들을 가진 콜렉션들과 many-to-many 연관들
6.2.5. One-to-many 연관들
6.3. 개선된 콜렉션 매핑들
6.3.1. Sorted 콜렉션들
6.3.2. 양방향 연관들
6.3.3. 세 겹의 연관들
6.3.4. <idbag> 사용하기
6.4. 콜렉션 예제들
7. 연관 매핑들
7.1. 개요
7.2. 단방향 연관들
7.2.1. many to one
7.2.2. one to one
7.2.3. one to many
7.3. join 테이블들에 대한 단방향 연관들
7.3.1. one to many
7.3.2. many to one
7.3.3. one to one
7.3.4. many to many
7.4. 양방향 연관들
7.4.1. one to many / many to one
7.4.2. one to one
7.5. join 테이블들에 대한 양방향 연관들
7.5.1. one to many / many to one
7.5.2. one to one
7.5.3. many to many
8. 컴포넌트 매핑
8.1. 종속 객체들
8.2. 종속 개체들을 가진 콜렉션들
8.3. Map 인덱스들로서 컴포넌트들
8.4. composite 식별자들로서 컴포넌트들
8.5. 동적인 컴포넌트들
9. 상속 매핑
9.1. 세 개의 방도들
9.1.1. Table per class hierarchy
9.1.2. Table per class subclass
9.1.3. Table per subclass, using a discriminator
9.1.4. table per class hierarchy를 table per subclass와 혼합시키기
9.1.5. Table per concrete class
9.1.6. 함축적인 다형성을 사용하는 Table per concrete class
9.1.7. 함축적인 다형성을 다른 상속 매핑들과 혼합시키기
9.2. Limitations
10. 객체들로 작업하기
10.1. Hibernate 객체 상태들
10.2. 객체들을 영속화 시키기
10.3. 객체를 로드시키기
10.4. 질의하기
10.4.1. 질의들을 실행하기
10.4.1.1. 결과들을 반복하기
10.4.1.2. 튜플들을 반환하는 질의들
10.4.1.3. 스칼라 결과들
10.4.1.4. 바인드 파라미터들
10.4.1.5. 쪽매김
10.4.1.6. 스크롤 가능한 iteration
10.4.1.7. 명명된 질의들을 구체화 시키기
10.4.2. 콜렉션들을 필터링하기
10.4.3. Criteria 질의들
10.4.4. native SQL에서 질의들
10.5. 영속 객체들을 변경하기
10.6. detached 객체들을 변경하기
10.7. 자동적인 상태 검출
10.8. 영속 객체들을 삭제하기
10.9. 두 개의 다른 데이터저장소들 사이에 객체를 복사하기
10.10. Session을 flush 시키기
10.11. Transitive persistence
10.12. 메타데이터 사용하기
11. 트랜잭션들과 동시성
11.1. Session 영역과 트랜잭션 영역
11.1.1. 작업 단위
11.1.2. 어플리케이션 트랜잭션들
11.1.3. 객체 identity 고려하기
11.1.4. 공통된 쟁점들
11.2. 데이터베이스 트랜잭션 경계설정
11.2.1. 관리되지 않는 환경
11.2.2. JTA 사용하기
11.2.3. 예외상황 처리
11.3. Optimistic 동시성 제어
11.3.1. 어플리케이션 버전 체킹
11.3.2. 긴 세션과 자동적인 버전화
11.3.3. Detached 객체들과 자동적인 버전화
11.3.4. 자동적인 버전화 맞춤화 시키기
11.4. Pessimistic 잠금
12. 인터셉터들과 이벤트들
12.1. 인터셉터들
12.2. 이벤트 시스템
12.3. Hibernate 선언적인 보안
13. Batch processing
13.1. Batch inserts
13.2. Batch updates
13.3. Bulk update/delete
14. HQL: Hibernate Query Language
14.1. 대소문자 구분
14.2. from 절
14.3. 연관들과 joins
14.4. select 절
14.5. Aggregate 함수들
14.6. Polymorphic 질의들
14.7. where 절
14.8. 표현식들
14.9. order by 절
14.10. group by 절
14.11. 서브질의들
14.12. HQL 예제들
14.13. 대량 UPDATE & DELETE 문장들
14.14. 팁들 & 트릭들
15. Criteria 질의들
15.1. Criteria 인스턴스 생성하기
15.2. Narrowing the result set
15.3. 결과들을 순서지우기(Ordering)
15.4. 연관들
15.5. 동적인 연관 패칭
15.6. 예제 질의들
15.7. Projections, aggregation 그리고 grouping
15.8. Detached 질의들과 서브질의들
16. Native SQL
16.1. native SQL Query 생성시키기
16.2. Alias 참조들과 프로퍼티 참조들
16.3. 명명된 SQL 질의들
16.3.1. column/alias 이름들을 명시적으로 지정하는데 return-property 사용하기
16.3.2. 질의하는데 내장 프로시저들을 사용하기
16.3.2.1. 내장 프로시저들을 사용하는 규칙들/제약들
16.4. create, update 그리고 delete를 위한 맞춤형 SQL
16.5. 로딩을 위한 맞춤형 SQL
17. 데이터 필터링하기
17.1. Hibernate 필터들
18. XML 매핑
18.1. XML 데이터로 작업하기
18.1.1. XML과 class 매핑을 함께 지정하기
18.1.2. 단지 XML 매핑 지정하기
18.2. XML 매핑 메타데이터
18.3. XML 데이터 처리하기
19. 퍼포먼스 개선하기
19.1. 패칭 방도들
19.1.1. 패치 방도들을 튜닝하기
19.1.2. Single-ended association proxies
19.1.3. 콜렉션들과 프락시들을 초기화 시키기
19.1.4. batch 패칭 사용하기
19.1.5. lazy property 패칭 사용하기
19.2. Second Level Cache
19.2.1. Cache 매핑들
19.2.2. 방도: 읽기 전용
19.2.3. 방도: 읽기/쓰기
19.2.4. 방도: 엄격하지 않은 읽기/쓰기
19.2.5. 방도: transactional
19.3. 캐시들을 관리하기
19.4. Query Cache
19.5. Collection 퍼포먼스 이해하기
19.5.1. 분류
19.5.2. List들, map들, idbag들 그리고 set들은 업데이트에 가장 효율적인 콜렉션들이다
19.5.3. Bag들과 list들은 가장 효율적인 inverse 콜렉션들이다
19.5.4. 원 샷 delete
19.6. Monitoring performance
19.6.1. SessionFactory 모니터링 하기
19.6.2. Metrics
20. 도구셋 안내
20.1. 자동적인 스키마 생성
20.1.1. 스키마 맞춤화 시키기
20.1.2. 도구 실행하기
20.1.3. 프로퍼티들
20.1.4. Ant 사용하기
20.1.5. 점증하는 스키마 업데이트들
20.1.6. 점증하는 스키마 업데이트들에 대해 Ant 사용하기
21. 예제: 부모/자식
21.1. 콜렉션들에 관한 노트
21.2. 양방향 one-to-many
21.3. 케스케이딩 생명주기
21.4. 케스케이드들과 unsaved-value
21.5. 결론
22. 예제: Weblog 어플리케이션
22.1. 영속 클래스들
22.2. Hibernate 매핑들
22.3. Hibernate 코드
23. 예제: 다양한 매핑들
23.1. Employer/Employee
23.2. Author/Work
23.3. Customer/Order/Product
23.4. 기타 예제 매핑들
23.4.1. "타입화 된" one-to-one 연관
23.4.2. Composite 키 예제
23.4.3. 내용 기반 판별
23.4.4. 대체 키들 상의 연관들
24. 최상의 실전 경험들