HIBERNATE - Relational Persistence for Idiomatic Java

Hibernate Reference Documentation

2.1.7


Table of Contents

Preface
1. Quickstart with Tomcat
1.1. Getting started with Hibernate
1.2. First persistent class
1.3. Mapping the cat
1.4. Playing with cats
1.5. Finally
2. Architecture
2.1. Overview
2.2. JMX Integration
2.3. JCA Support
3. SessionFactory Configuration
3.1. Programmatic Configuration
3.2. Obtaining a SessionFactory
3.3. User provided JDBC connection
3.4. Hibernate provided JDBC connection
3.5. Optional configuration properties
3.5.1. SQL Dialects
3.5.2. Outer Join Fetching
3.5.3. Binary Streams
3.5.4. Custom CacheProvider
3.5.5. Transaction strategy configuration
3.5.6. JNDI-bound SessionFactory
3.5.7. Query Language Substitution
3.6. Logging
3.7. Implementing a NamingStrategy
3.8. XML Configuration File
4. Persistent Classes
4.1. A simple POJO example
4.1.1. Declare accessors and mutators for persistent fields
4.1.2. Implement a default constructor
4.1.3. Provide an identifier property (optional)
4.1.4. Prefer non-final classes (optional)
4.2. Implementing inheritance
4.3. Implementing equals() and hashCode()
4.4. Lifecycle Callbacks
4.5. Validatable callback
4.6. Using XDOclet markup
5. Basic O/R Mapping
5.1. Mapping declaration
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 Algorithm
5.1.4.3. UUID Algorithm
5.1.4.4. Identity columns and Sequences
5.1.4.5. Assigned Identifiers
5.1.5. composite-id
5.1.6. discriminator
5.1.7. version (optional)
5.1.8. timestamp (optional)
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. subclass
5.1.14. joined-subclass
5.1.15. map, set, list, bag
5.1.16. import
5.2. Hibernate Types
5.2.1. Entities and values
5.2.2. Basic value types
5.2.3. Persistent enum types
5.2.4. Custom value types
5.2.5. Any type mappings
5.3. SQL quoted identifiers
5.4. Modular mapping files
6. Collection Mapping
6.1. Persistent Collections
6.2. Mapping a Collection
6.3. Collections of Values and Many-To-Many Associations
6.4. One-To-Many Associations
6.5. Lazy Initialization
6.6. Sorted Collections
6.7. Using an <idbag>
6.8. Bidirectional Associations
6.9. Ternary Associations
6.10. Heterogeneous Associations
6.11. Collection examples
7. Component Mapping
7.1. Dependent objects
7.2. Collections of dependent objects
7.3. Components as Map indices
7.4. Components as composite identifiers
7.5. Dynamic components
8. Inheritance Mapping
8.1. The Three Strategies
8.2. Limitations
9. Manipulating Persistent Data
9.1. Creating a persistent object
9.2. Loading an object
9.3. Querying
9.3.1. Scalar queries
9.3.2. The Query interface
9.3.3. Scrollable iteration
9.3.4. Filtering collections
9.3.5. Criteria queries
9.3.6. Queries in native SQL
9.4. Updating objects
9.4.1. Updating in the same Session
9.4.2. Updating detached objects
9.4.3. Reattaching detached objects
9.5. Deleting persistent objects
9.6. Flush
9.7. Ending a Session
9.7.1. Flushing the Session
9.7.2. Committing the database transaction
9.7.3. Closing the Session
9.8. Exception handling
9.9. Lifecyles and object graphs
9.10. Interceptors
9.11. Metadata API
10. Transactions And Concurrency
10.1. Configurations, Sessions and Factories
10.2. Threads and connections
10.3. Considering object identity
10.4. Optimistic concurrency control
10.4.1. Long session with automatic versioning
10.4.2. Many sessions with automatic versioning
10.4.3. Application version checking
10.5. Session disconnection
10.6. Pessimistic Locking
11. HQL: The Hibernate Query Language
11.1. Case Sensitivity
11.2. The from clause
11.3. Associations and joins
11.4. The select clause
11.5. Aggregate functions
11.6. Polymorphic queries
11.7. The where clause
11.8. Expressions
11.9. The order by clause
11.10. The group by clause
11.11. Subqueries
11.12. HQL examples
11.13. Tips & Tricks
12. Criteria Queries
12.1. Creating a Criteria instance
12.2. Narrowing the result set
12.3. Ordering the results
12.4. Associations
12.5. Dynamic association fetching
12.6. Example queries
13. Native SQL Queries
13.1. Creating a SQL based Query
13.2. Alias and property references
13.3. Named SQL queries
14. Improving performance
14.1. Understanding Collection performance
14.1.1. Taxonomy
14.1.2. Lists, maps and sets are the most efficient collections to update
14.1.3. Bags and lists are the most efficient inverse collections
14.1.4. One shot delete
14.2. Proxies for Lazy Initialization
14.3. Using batch fetching
14.4. The Second Level Cache
14.4.1. Cache mappings
14.4.2. Strategy: read only
14.4.3. Strategy: read/write
14.4.4. Strategy: nonstrict read/write
14.4.5. Strategy: transactional
14.5. Managing the Session Cache
14.6. The Query Cache
15. Toolset Guide
15.1. Schema Generation
15.1.1. Customizing the schema
15.1.2. Running the tool
15.1.3. Properties
15.1.4. Using Ant
15.1.5. Incremental schema updates
15.1.6. Using Ant for incremental schema updates
15.2. Code Generation
15.2.1. The config file (optional)
15.2.2. The meta attribute
15.2.3. Basic finder generator
15.2.4. Velocity based renderer/generator
15.3. Mapping File Generation
15.3.1. Running the tool
16. Example: Parent/Child
16.1. A note about collections
16.2. Bidirectional one-to-many
16.3. Cascading lifecycle
16.4. Using cascading update()
16.5. Conclusion
17. Example: Weblog Application
17.1. Persistent Classes
17.2. Hibernate Mappings
17.3. Hibernate Code
18. Example: Various Mappings
18.1. Employer/Employee
18.2. Author/Work
18.3. Customer/Order/Product
19. Best Practices