Jump To Close Expand all Collapse all Table of contents Hibernate Core Reference Guide Preface 1. Tutorial Expand section "1. Tutorial" Collapse section "1. Tutorial" 1.1. Part 1 - The first Hibernate Application Expand section "1.1. Part 1 - The first Hibernate Application" Collapse section "1.1. Part 1 - The first Hibernate Application" 1.1.1. Setup 1.1.2. The first class 1.1.3. The mapping file 1.1.4. Hibernate configuration 1.1.5. Building with Maven 1.1.6. Start up and helpers 1.1.7. Loading and storing objects 1.2. Part 2 - Mapping associations Expand section "1.2. Part 2 - Mapping associations" Collapse section "1.2. Part 2 - Mapping associations" 1.2.1. Mapping the Person class 1.2.2. A unidirectional Set-based association 1.2.3. Working the association 1.2.4. Collection of values 1.2.5. Bi-directional associations 1.2.6. Working bi-directional links 1.3. Part 3 - The EventManager web application Expand section "1.3. Part 3 - The EventManager web application" Collapse section "1.3. Part 3 - The EventManager web application" 1.3.1. Writing the basic servlet 1.3.2. Processing and rendering 1.3.3. Deploying and testing 1.4. Summary 2. Architecture Expand section "2. Architecture" Collapse section "2. Architecture" 2.1. Overview 2.2. Instance states 2.3. JMX Integration 2.4. JCA Support 2.5. Contextual sessions 3. Configuration Expand section "3. Configuration" Collapse section "3. Configuration" 3.1. Programmatic configuration 3.2. Obtaining a SessionFactory 3.3. JDBC connections 3.4. Optional configuration properties Expand section "3.4. Optional configuration properties" Collapse section "3.4. Optional configuration properties" 3.4.1. SQL Dialects 3.4.2. Outer Join Fetching 3.4.3. Binary Streams 3.4.4. Second-level and query cache 3.4.5. Query Language Substitution 3.4.6. Hibernate statistics 3.5. Logging 3.6. Implementing a NamingStrategy 3.7. XML configuration file 3.8. J2EE Application Server integration Expand section "3.8. J2EE Application Server integration" Collapse section "3.8. J2EE Application Server integration" 3.8.1. Transaction strategy configuration 3.8.2. JNDI-bound SessionFactory 3.8.3. Current Session context management with JTA 3.8.4. JMX deployment 4. Persistent Classes Expand section "4. Persistent Classes" Collapse section "4. Persistent Classes" 4.1. A simple POJO example Expand section "4.1. A simple POJO example" Collapse section "4.1. A simple POJO example" 4.1.1. Implement a no-argument constructor 4.1.2. Provide an identifier property (optional) 4.1.3. Prefer non-final classes (optional) 4.1.4. Declare accessors and mutators for persistent fields (optional) 4.2. Implementing inheritance 4.3. Implementing equals() and hashCode() 4.4. Dynamic models 4.5. Tuplizers 4.6. EntityNameResolvers 5. Basic O/R Mapping Expand section "5. Basic O/R Mapping" Collapse section "5. Basic O/R Mapping" 5.1. Mapping declaration Expand section "5.1. Mapping declaration" Collapse section "5.1. Mapping declaration" 5.1.1. Doctype 5.1.2. Hibernate-mapping 5.1.3. Class 5.1.4. id 5.1.5. Enhanced identifier generators 5.1.6. 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 Expand section "5.2. Hibernate types" Collapse section "5.2. Hibernate types" 5.2.1. Entities and values 5.2.2. Basic value types 5.2.3. Custom value types 5.3. Mapping a class more than once 5.4. SQL quoted identifiers 5.5. Metadata alternatives Expand section "5.5. Metadata alternatives" Collapse section "5.5. Metadata alternatives" 5.5.1. Using XDoclet markup 5.5.2. Using JDK 5.0 Annotations 5.6. Generated properties 5.7. Auxiliary database objects 6. Collection mapping Expand section "6. Collection mapping" Collapse section "6. Collection mapping" 6.1. Persistent collections 6.2. Collection mappings Expand section "6.2. Collection mappings" Collapse section "6.2. Collection mappings" 6.2.1. Collection foreign keys 6.2.2. Collection elements 6.2.3. Indexed collections 6.2.4. Collections of values and many-to-many associations 6.2.5. One-to-many associations 6.3. Advanced collection mappings Expand section "6.3. Advanced collection mappings" Collapse section "6.3. Advanced collection mappings" 6.3.1. Sorted collections 6.3.2. Bidirectional associations 6.3.3. Bidirectional associations with indexed collections 6.3.4. Ternary associations 6.3.5. Using an <idbag> 6.4. Collection examples 7. Association Mappings Expand section "7. Association Mappings" Collapse section "7. Association Mappings" 7.1. Introduction 7.2. Unidirectional associations Expand section "7.2. Unidirectional associations" Collapse section "7.2. Unidirectional associations" 7.2.1. Many-to-one 7.2.2. One-to-one 7.2.3. One-to-many 7.3. Unidirectional associations with join tables Expand section "7.3. Unidirectional associations with join tables" Collapse section "7.3. Unidirectional associations with join tables" 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. Bidirectional associations Expand section "7.4. Bidirectional associations" Collapse section "7.4. Bidirectional associations" 7.4.1. one-to-many / many-to-one 7.4.2. One-to-one 7.5. Bidirectional associations with join tables Expand section "7.5. Bidirectional associations with join tables" Collapse section "7.5. Bidirectional associations with join tables" 7.5.1. one-to-many / many-to-one 7.5.2. one to one 7.5.3. Many-to-many 7.6. More complex association mappings 8. Component Mapping Expand section "8. Component Mapping" Collapse section "8. Component Mapping" 8.1. Dependent objects 8.2. Collections of dependent objects 8.3. Components as Map indices 8.4. Components as composite identifiers 8.5. Dynamic components 9. Inheritance mapping Expand section "9. Inheritance mapping" Collapse section "9. Inheritance mapping" 9.1. The three strategies Expand section "9.1. The three strategies" Collapse section "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. Mixing table per class hierarchy with table per subclass 9.1.5. Table per concrete class 9.1.6. Table per concrete class using implicit polymorphism 9.1.7. Mixing implicit polymorphism with other inheritance mappings 9.2. Limitations 10. Working with objects Expand section "10. Working with objects" Collapse section "10. Working with objects" 10.1. Hibernate object states 10.2. Making objects persistent 10.3. Loading an object 10.4. Querying Expand section "10.4. Querying" Collapse section "10.4. Querying" 10.4.1. Executing queries 10.4.2. Filtering collections 10.4.3. Criteria queries 10.4.4. Queries in native SQL 10.5. Modifying persistent objects 10.6. Modifying detached objects 10.7. Automatic state detection 10.8. Deleting persistent objects 10.9. Replicating object between two different datastores 10.10. Flushing the Session 10.11. Transitive persistence 10.12. Using metadata 11. Transactions and Concurrency Expand section "11. Transactions and Concurrency" Collapse section "11. Transactions and Concurrency" 11.1. Session and transaction scopes Expand section "11.1. Session and transaction scopes" Collapse section "11.1. Session and transaction scopes" 11.1.1. Unit of work 11.1.2. Long conversations 11.1.3. Considering object identity 11.1.4. Common issues 11.2. Database transaction demarcation Expand section "11.2. Database transaction demarcation" Collapse section "11.2. Database transaction demarcation" 11.2.1. Non-managed environment 11.2.2. Using JTA 11.2.3. Exception handling 11.2.4. Transaction timeout 11.3. Optimistic concurrency control Expand section "11.3. Optimistic concurrency control" Collapse section "11.3. Optimistic concurrency control" 11.3.1. Application version checking 11.3.2. Extended session and automatic versioning 11.3.3. Detached objects and automatic versioning 11.3.4. Customizing automatic versioning 11.4. Pessimistic locking 11.5. Connection release modes 12. Interceptors and events Expand section "12. Interceptors and events" Collapse section "12. Interceptors and events" 12.1. Interceptors 12.2. Event system 12.3. Hibernate declarative security 13. Batch processing Expand section "13. Batch processing" Collapse section "13. Batch processing" 13.1. Batch inserts 13.2. Batch updates 13.3. The StatelessSession interface 13.4. DML-style operations 14. HQL: The Hibernate Query Language Expand section "14. HQL: The Hibernate Query Language" Collapse section "14. HQL: The Hibernate Query Language" 14.1. Case Sensitivity 14.2. The from clause 14.3. Associations and joins 14.4. Forms of join syntax 14.5. Referring to identifier property 14.6. The select clause 14.7. Aggregate functions 14.8. Polymorphic queries 14.9. The where clause 14.10. Expressions 14.11. The order by clause 14.12. The group by clause 14.13. Subqueries 14.14. HQL examples 14.15. Bulk update and delete 14.16. Tips & Tricks 14.17. Components 14.18. Row value constructor syntax 15. Criteria Queries Expand section "15. Criteria Queries" Collapse section "15. Criteria Queries" 15.1. Creating a Criteria instance 15.2. Narrowing the result set 15.3. Ordering the results 15.4. Associations 15.5. Dynamic association fetching 15.6. Example queries 15.7. Projections, aggregation and grouping 15.8. Detached queries and subqueries 15.9. Queries by natural identifier 16. Native SQL Expand section "16. Native SQL" Collapse section "16. Native SQL" 16.1. Using a SQLQuery Expand section "16.1. Using a SQLQuery" Collapse section "16.1. Using a SQLQuery" 16.1.1. Scalar queries 16.1.2. Entity queries 16.1.3. Handling associations and collections 16.1.4. Returning multiple entities 16.1.5. Returning non-managed entities 16.1.6. Handling inheritance 16.1.7. Parameters 16.2. Named SQL queries Expand section "16.2. Named SQL queries" Collapse section "16.2. Named SQL queries" 16.2.1. Using return-property to explicitly specify column/alias names 16.2.2. Using stored procedures for querying 16.3. Custom SQL for create, update and delete 16.4. Custom SQL for loading 17. Filtering data Expand section "17. Filtering data" Collapse section "17. Filtering data" 17.1. Hibernate filters 18. XML Mapping Expand section "18. XML Mapping" Collapse section "18. XML Mapping" 18.1. Working with XML data Expand section "18.1. Working with XML data" Collapse section "18.1. Working with XML data" 18.1.1. Specifying XML and class mapping together 18.1.2. Specifying only an XML mapping 18.2. XML mapping metadata 18.3. Manipulating XML data 19. Improving performance Expand section "19. Improving performance" Collapse section "19. Improving performance" 19.1. Fetching strategies Expand section "19.1. Fetching strategies" Collapse section "19.1. Fetching strategies" 19.1.1. Working with lazy associations 19.1.2. Tuning fetch strategies 19.1.3. Single-ended association proxies 19.1.4. Initializing collections and proxies 19.1.5. Using batch fetching 19.1.6. Using subselect fetching 19.1.7. Using lazy property fetching 19.2. The Second Level Cache Expand section "19.2. The Second Level Cache" Collapse section "19.2. The Second Level Cache" 19.2.1. Cache mappings 19.2.2. Strategy: read only 19.2.3. Strategy: read/write 19.2.4. Strategy: nonstrict read/write 19.2.5. Strategy: transactional 19.2.6. Cache-provider/concurrency-strategy compatibility 19.3. Managing the caches 19.4. The Query Cache 19.5. Understanding Collection performance Expand section "19.5. Understanding Collection performance" Collapse section "19.5. Understanding Collection performance" 19.5.1. Taxonomy 19.5.2. Lists, maps, idbags and sets are the most efficient collections to update 19.5.3. Bags and lists are the most efficient inverse collections 19.5.4. One shot delete 19.6. Monitoring performance Expand section "19.6. Monitoring performance" Collapse section "19.6. Monitoring performance" 19.6.1. Monitoring a SessionFactory 19.6.2. Metrics 20. Toolset Guide Expand section "20. Toolset Guide" Collapse section "20. Toolset Guide" 20.1. Automatic schema generation Expand section "20.1. Automatic schema generation" Collapse section "20.1. Automatic schema generation" 20.1.1. Customizing the schema 20.1.2. Running the tool 20.1.3. Properties 20.1.4. Using Ant 20.1.5. Incremental schema updates 20.1.6. Using Ant for incremental schema updates 20.1.7. Schema validation 20.1.8. Using Ant for schema validation 21. Example: Parent/Child Expand section "21. Example: Parent/Child" Collapse section "21. Example: Parent/Child" 21.1. A note about collections 21.2. Bidirectional one-to-many 21.3. Cascading life cycle 21.4. Cascades and unsaved-value 21.5. Conclusion 22. Example: Weblog Application Expand section "22. Example: Weblog Application" Collapse section "22. Example: Weblog Application" 22.1. Persistent Classes 22.2. Hibernate Mappings 22.3. Hibernate Code 23. Example: Various Mappings Expand section "23. Example: Various Mappings" Collapse section "23. Example: Various Mappings" 23.1. Employer/Employee 23.2. Author/Work 23.3. Customer/Order/Product 23.4. Miscellaneous example mappings Expand section "23.4. Miscellaneous example mappings" Collapse section "23.4. Miscellaneous example mappings" 23.4.1. "Typed" one-to-one association 23.4.2. Composite key example 23.4.3. Many-to-many with shared composite key attribute 23.4.4. Content based discrimination 23.4.5. Associations on alternate keys 24. Best Practices 25. Database Portability Considerations Expand section "25. Database Portability Considerations" Collapse section "25. Database Portability Considerations" 25.1. Portability Basics 25.2. Dialect 25.3. Dialect resolution 25.4. Identifier generation 25.5. Database functions A. Revision History Legal Notice Settings Close Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF 2.4. JCA Support Hibernate can also be configured as a JCA connector. Please see the website for more information. Please note, however, that at this stage Hibernate JCA support is under development. Previous Next