HIBERNATE - 개성있
는 자바를 위한 관계 영속
1
하이버네이트 참조 문서
3.3.2.GA
지은이 Gavin King, Christian Bauer, Max Rydahl
Andersen, Emmanuel Bernard, 그리고 Steve Ebersole
and thanks to James Cobb (Graphic Design) 그리고 Cheyenne Weaver (Graphic Design)
iii
머리말 ............................................................................................................................ xi
1. Feedback ........................................................................................................... xii
1. Tutorial ....................................................................................................................... 1
1.1. 파트 1 - 첫 번째 Hibernate 어플리케이션 ........................................................ 1
1.1.1. Setup ..................................................................................................... 1
1.1.2. 첫 번째 클래스 ..................................................................................... 3
1.1.3. The mapping file ................................................................................... 4
1.1.4. Hibernate 구성 ....................................................................................... 7
1.1.5. Building with Maven .............................................................................. 9
1.1.6. 시작과 helper들 .................................................................................... 10
1.1.7. 객체 로딩과 객체 저장 ........................................................................ 11
1.2. 파트 2 - 연관들을 매핑하기 .......................................................................... 14
1.2.1. Person 클래스 매핑하기 ....................................................................... 14
1.2.2. 단방향 Set-기반의 연관 ........................................................................ 15
1.2.3. 연관들에 작업하기 ............................................................................... 17
1.2.4. 값들을 가진 콜렉션 ............................................................................. 19
1.2.5. Bi-directional associations ....................................................................... 21
1.2.6. 양방향 링크들에 작업하기 ................................................................... 22
1.3. 파트 3 - EventManager 웹 어플리케이션 ........................................................ 23
1.3.1. 기본 서블릿 작성하기 .......................................................................... 23
1.3.2. 프로세싱과 렌더링 ............................................................................... 24
1.3.3. 배치하기 그리고 테스트하기 ................................................................ 26
1.4. 요약 ............................................................................................................... 27
2. 아키텍처 ................................................................................................................... 29
2.1. 개요 ............................................................................................................... 29
2.2. 인스턴스 상태들 ............................................................................................. 30
2.3. JMX 통합 ...................................................................................................... 31
2.4. JCA 지원 ....................................................................................................... 31
2.5. Contextual sessions ........................................................................................... 31
3. 구성 .......................................................................................................................... 33
3.1. 프로그램 상의 구성 ....................................................................................... 33
3.2. SessionFactory 얻기 ......................................................................................... 34
3.3. JDBC 커넥션들 ............................................................................................... 34
3.4. 선택적인 구성 프로퍼티들 .............................................................................. 36
3.4.1. SQL Dialects ........................................................................................ 42
3.4.2. Outer Join Fetching .............................................................................. 43
3.4.3. Binary Streams ...................................................................................... 43
3.4.4. Second-level 캐시와 query 캐시 ............................................................ 44
3.4.5. Query Language 치환 ........................................................................... 44
3.4.6. Hibernate 통계 ..................................................................................... 44
3.5. 로깅 ............................................................................................................... 44
3.6. NamingStrategy 구현하기 ................................................................................... 45
3.7. XML 구성 파일 ............................................................................................. 46
3.8. J2EE 어플리케이션 서버 통합 ........................................................................ 47
HIBERNATE - 개성있는 자바를 위한 관계 영속
iv
3.8.1. 트랜잭션 방도 구성 ............................................................................. 48
3.8.2. JNDI-bound SessionFactory ....................................................................... 49
3.8.3. Current Session context management with JTA ....................................... 49
3.8.4. JMX 배치 ............................................................................................ 49
4. 영속 클래스들 .......................................................................................................... 53
4.1. 간단한 POJO 예제 ......................................................................................... 53
4.1.1. 아규먼트 없는 생성자를 구현하라 ........................................................ 55
4.1.2. identifier 프로퍼티를 제공하라(옵션) .................................................... 55
4.1.3. final이 아닌 클래스들을 선호하라(옵션) ............................................... 55
4.1.4. 영속 필드들을 위한 accessor들과 mutator들을 선언하라(옵션) ................ 56
4.2. 상속 구현하기 ................................................................................................ 56
4.3. equals()와 hashCode() 구현하기 ......................................................................... 56
4.4. 동적인 모형들 ................................................................................................ 58
4.5. Tuplizer들 ....................................................................................................... 60
4.6. EntityNameResolvers ......................................................................................... 61
5. 기본 O/R 매핑 ......................................................................................................... 65
5.1. 매핑 선언 ...................................................................................................... 65
5.1.1. Doctype ................................................................................................ 66
5.1.2. Hibernate-mapping ................................................................................. 67
5.1.3. Class .................................................................................................... 68
5.1.4. id ......................................................................................................... 72
5.1.5. NOT TRANSLATED!Enhanced identifier generators ................................. 76
5.1.6. NOT TRANSLATED! Identifier generator optimization ............................. 77
5.1.7. composite-id .......................................................................................... 78
5.1.8. Discriminator ......................................................................................... 79
5.1.9. Version (optional) ................................................................................. 80
5.1.10. Timestamp (optional) ........................................................................... 81
5.1.11. Property .............................................................................................. 82
5.1.12. Many-to-one ........................................................................................ 84
5.1.13. One-to-one .......................................................................................... 87
5.1.14. Natural-id ............................................................................................ 89
5.1.15. Component and dynamic-component ...................................................... 90
5.1.16. Properties ............................................................................................ 91
5.1.17. Subclass ............................................................................................... 92
5.1.18. Joined-subclass ..................................................................................... 93
5.1.19. Union-subclass ..................................................................................... 95
5.1.20. Join .................................................................................................... 96
5.1.21. Key .................................................................................................... 97
5.1.22. Column and formula elements .............................................................. 98
5.1.23. Import ................................................................................................ 99
5.1.24. Any .................................................................................................... 99
5.2. Hibernate types ............................................................................................. 100
5.2.1. 엔티티들과 값들 ................................................................................. 100
5.2.2. 기본 value 타입들 .............................................................................. 101
v
5.2.3. 맞춤형 value 타입들 ........................................................................... 102
5.3. 하나의 클래스를 한 번 이상 매핑하기 ......................................................... 104
5.4. SQL 인용부호 표시된 식별자들 .................................................................... 104
5.5. Metadata 대안들 ........................................................................................... 105
5.5.1. XDoclet 마크업 사용하기 ................................................................... 105
5.5.2. JDK 5.0 Annotations 사용하기 ............................................................ 107
5.6. Generated properties ....................................................................................... 108
5.7. Auxiliary database objects .............................................................................. 109
6. Collection mapping ................................................................................................... 111
6.1. 영속 콜렉션들 .............................................................................................. 111
6.2. 콜렉션 매핑들 .............................................................................................. 112
6.2.1. 콜렉션 foreign 키들 ........................................................................... 114
6.2.2. 콜렉션 요소들 .................................................................................... 114
6.2.3. 인덱싱 된 콜렉션들 ........................................................................... 114
6.2.4. 값들을 가진 콜렉션들과 many-to-many 연관들 .................................... 116
6.2.5. One-to-many 연관들 ............................................................................ 118
6.3. 개선된 콜렉션 매핑들 .................................................................................. 119
6.3.1. Sorted 콜렉션들 .................................................................................. 119
6.3.2. 양방향 연관들 .................................................................................... 121
6.3.3. 인덱싱된 콜렉션들을 가진 양방향 연관들 ........................................... 122
6.3.4. Ternary associations(세겹 연관들) ........................................................ 124
6.3.5. <idbag> 사용하기 .................................................................................. 124
6.4. 콜렉션 예제들 .............................................................................................. 125
7. 연관 매핑들 ............................................................................................................ 129
7.1. 개요 ............................................................................................................. 129
7.2. 단방향 연관들 .............................................................................................. 129
7.2.1. Many-to-one ........................................................................................ 129
7.2.2. One-to-one .......................................................................................... 130
7.2.3. One-to-many ....................................................................................... 131
7.3. join 테이블들에 대한 단방향 연관들 ............................................................. 132
7.3.1. One-to-many ....................................................................................... 132
7.3.2. Many-to-one ........................................................................................ 132
7.3.3. One-to-one .......................................................................................... 133
7.3.4. Many-to-many ..................................................................................... 134
7.4. 양방향 연관들 .............................................................................................. 135
7.4.1. one-to-many / many-to-one .................................................................. 135
7.4.2. One-to-one .......................................................................................... 136
7.5. join 테이블들에 대한 양방향 연관들 ............................................................. 137
7.5.1. one-to-many / many-to-one .................................................................. 137
7.5.2. one to one ......................................................................................... 138
7.5.3. Many-to-many ..................................................................................... 139
7.6. 보다 복잡한 연관 매핑들 ............................................................................. 140
8. Component 매핑 ...................................................................................................... 143
8.1. 종속 객체들 ................................................................................................. 143
- 1
- 2
- 3
前往页