Hibernate.orgCommunity Documentation

HIBERNATE - 개성있는 자바를 위한 관계 영속

하이버네이트 참조 문서

3.3.2.GA

Legal Notice

June 24, 2009


머리말
1. Feedback
1. Tutorial
1.1. 파트 1 - 첫 번째 Hibernate 어플리케이션
1.1.1. Setup
1.1.2. 첫 번째 클래스
1.1.3. The mapping file
1.1.4. Hibernate 구성
1.1.5. Building with Maven
1.1.6. 시작과 helper들
1.1.7. 객체 로딩과 객체 저장
1.2. 파트 2 - 연관들을 매핑하기
1.2.1. Person 클래스 매핑하기
1.2.2. 단방향 Set-기반의 연관
1.2.3. 연관들에 작업하기
1.2.4. 값들을 가진 콜렉션
1.2.5. Bi-directional associations
1.2.6. 양방향 링크들에 작업하기
1.3. 파트 3 - EventManager 웹 어플리케이션
1.3.1. 기본 서블릿 작성하기
1.3.2. 프로세싱과 렌더링
1.3.3. 배치하기 그리고 테스트하기
1.4. 요약
2. 아키텍처
2.1. 개요
2.2. 인스턴스 상태들
2.3. JMX 통합
2.4. JCA 지원
2.5. Contextual sessions
3. 구성
3.1. 프로그램 상의 구성
3.2. SessionFactory 얻기
3.3. JDBC 커넥션들
3.4. 선택적인 구성 프로퍼티들
3.4.1. SQL Dialects
3.4.2. Outer Join Fetching
3.4.3. Binary Streams
3.4.4. Second-level 캐시와 query 캐시
3.4.5. Query Language 치환
3.4.6. Hibernate 통계
3.5. 로깅
3.6. NamingStrategy 구현하기
3.7. XML 구성 파일
3.8. J2EE 어플리케이션 서버 통합
3.8.1. 트랜잭션 방도 구성
3.8.2. JNDI-bound SessionFactory
3.8.3. Current Session context management with JTA
3.8.4. JMX 배치
4. 영속 클래스들
4.1. 간단한 POJO 예제
4.1.1. 아규먼트 없는 생성자를 구현하라
4.1.2. identifier 프로퍼티를 제공하라(옵션)
4.1.3. final이 아닌 클래스들을 선호하라(옵션)
4.1.4. 영속 필드들을 위한 accessor들과 mutator들을 선언하라(옵션)
4.2. 상속 구현하기
4.3. equals()hashCode() 구현하기
4.4. 동적인 모형들
4.5. Tuplizer들
4.6. EntityNameResolvers
5. 기본 O/R 매핑
5.1. 매핑 선언
5.1.1. Doctype
5.1.2. Hibernate-mapping
5.1.3. Class
5.1.4. id
5.1.5. NOT TRANSLATED!Enhanced identifier generators
5.1.6. NOT TRANSLATED! Identifier generator optimization
5.1.7. composite-id
5.1.8. Discriminator
5.1.9. Version (optional)
5.1.10. Timestamp (optional)
5.1.11. Property
5.1.12. Many-to-one
5.1.13. One-to-one
5.1.14. Natural-id
5.1.15. Component and dynamic-component
5.1.16. Properties
5.1.17. Subclass
5.1.18. Joined-subclass
5.1.19. Union-subclass
5.1.20. Join
5.1.21. Key
5.1.22. Column and formula elements
5.1.23. Import
5.1.24. Any
5.2. Hibernate types
5.2.1. 엔티티들과 값들
5.2.2. 기본 value 타입들
5.2.3. 맞춤형 value 타입들
5.3. 하나의 클래스를 한 번 이상 매핑하기
5.4. SQL 인용부호 표시된 식별자들
5.5. Metadata 대안들
5.5.1. XDoclet 마크업 사용하기
5.5.2. JDK 5.0 Annotations 사용하기
5.6. Generated properties
5.7. Auxiliary database objects
6. Collection mapping
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. Ternary associations(세겹 연관들)
6.3.5. <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
7.6. 보다 복잡한 연관 매핑들
8. Component 매핑
8.1. 종속 객체들
8.2. 종속 객체들을 가진 콜렉션들
8.3. Map 인덱스들로서 컴포넌트들
8.4. composite 식별자들로서 컴포넌트들
8.5. 동적인 컴포넌트들
9. Inheritance mapping
9.1. The three strategies
9.1.1. Table per class hierarchy
9.1.2. Table per 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 using implicit polymorphism
9.1.7. 함축적인 다형성을 다른 상속 매핑들과 혼합하기
9.2. 제약들
10. 객체들로 작업하기
10.1. Hibernate 객체 상태들
10.2. 객체들을 영속화 시키기
10.3. 객체를 로드시키기
10.4. 질의하기
10.4.1. 질의들을 실행하기
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. Transactions and Concurrency
11.1. 세션 영역과 트랜잭션 영역
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.2.4. 트랜잭션 타임아웃
11.3. Optimistic 동시성 제어
11.3.1. 어플리케이션 버전 체킹
11.3.2. 확장된 세션과 자동적인 버전화
11.3.3. Detached 객체들과 자동적인 버전화
11.3.4. 자동적인 버전화를 맞춤화 시키기
11.4. Pessimistic locking
11.5. Connection release modes
12. 인터셉터들과 이벤트들
12.1. 인터셉터들
12.2. 이벤트 시스템
12.3. Hibernate 선언적인 보안
13. Batch 처리
13.1. Batch inserts
13.2. Batch updates
13.3. StatelessSession 인터페이스
13.4. DML-스타일 연산들
14. HQL: 하이버네이트 질의 언어(Hibernate Query Language)
14.1. 대소문자 구분
14.2. from 절
14.3. 연관들과 조인들
14.4. join 구문의 형식들
14.5. Referring to identifier property
14.6. select 절
14.7. 집계 함수들
14.8. Polymorphic(다형성) 질의들
14.9. where 절
14.10. 표현식들
14.11. order by 절
14.12. group by 절
14.13. 서브질의들
14.14. HQL 예제들
14.15. 대량 update와 delete
14.16. 팁들 & 트릭들
14.17. 컴포넌트들
14.18. Row value constructor 구문
15. Criteria 질의들
15.1. Criteria 인스턴스 생성하기
15.2. 결과 셋 제한하기
15.3. 결과들을 순서지우기(ordering)
15.4. 연관들
15.5. 동적인 연관 페칭
15.6. 예제 질의들
15.7. Projections, aggregation 그리고 grouping
15.8. Detached 질의들과 서브질의들
15.9. natural 식별자에 의한 질의들
16. Native SQL
16.1. SQLQuery 사용하기
16.1.1. 스칼라 질의들
16.1.2. Entity 질의들
16.1.3. 연관들과 콜렉션들을 처리하기
16.1.4. 여러 개의 엔티티들을 반환하기
16.1.5. non-managed 엔티티들을 반환하기
16.1.6. 상속 처리하기
16.1.7. 파라미터들
16.2. 명명된 SQL 질의들
16.2.1. 명시적으로 column/alias 이름들을 지정하는데 return-property 사용하기
16.2.2. 질의를 위한 내장 프로시저 사용하기
16.3. create, update 그리고 delete를 위한 맞춤형 SQL
16.4. 로딩을 위한 맞춤형 SQL
17. 데이터 필터링하기
17.1. Hibernate 필터들
18. XML 매핑
18.1. XML 데이터로 작업하기
18.1.1. XML과 클래스 매핑을 함께 지정하기
18.1.2. XML 매핑만을 지정하기
18.2. XML 매핑 메타데이터
18.3. XML 데이터 처리하기
19. 퍼포먼스 개선하기
19.1. 페칭 방도들
19.1.1. lazy 연관들로 작업하기
19.1.2. 페치 방도들을 튜닝하기
19.1.3. Single-ended 연관 프락시
19.1.4. 콜렉션들과 프락시들을 초기화 시키기
19.1.5. batch 페칭 사용하기
19.1.6. subselect 페칭 사용하기
19.1.7. lazy 프로퍼티 페칭 사용하기
19.2. 두번째 레벨 캐시
19.2.1. Cache 매핑들
19.2.2. 방도: 읽기 전용
19.2.3. 방도: 읽기/쓰기
19.2.4. 방도: 엄격하지 않은 읽기/쓰기
19.2.5. 방도: transactional
19.2.6. Cache-provider/concurrency-strategy compatibility
19.3. 캐시들을 관리하기
19.4. 질의 캐시
19.5. 콜렉션 퍼포먼스 이해하기
19.5.1. 분류
19.5.2. List, map, idbag, set들은 update에 가장 효율적인 콜렉션들이다
19.5.3. Bag들과 list들은 가장 효율적인 inverse 콜렉션들이다
19.5.4. 원 샷 delete
19.6. 퍼포먼스 모니터링하기
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 사용하기
20.1.7. 스키마 유효성 검사
20.1.8. 스키마 유효성 검사를 위해 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. "형식화된(Typed)" one-to-one 연관
23.4.2. Composite 키 예제
23.4.3. 공유된 합성 키 속성을 가진 Many-to-many
23.4.4. 내용 기반 판별
23.4.5. 대체 키들에 대한 연관들
24. 최상의 실전 경험들
25. Database Portability Considerations
25.1. Portability Basics
25.2. Dialect
25.3. Dialect resolution
25.4. Identifier generation
25.5. Database functions
25.6. Type mappings
References