Hibernate is an open source object/relational mapping tool for Java. Hibernate lets you develop persistent classes following common Java idiom -
including association, inheritance, polymorphism, composition and the Java collections framework.
Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities and can significantly reduce development time otherwise spent with manual data handling in SQL and
JDBC.
Hibernates goal is to relieve the developer from 95 percent of common data persistence related programming tasks.
Hibernate is Free Software. The LGPL license is sufficiently flexible to allow the use of Hibernate in both open source and
commercial projects (see the LicenseFAQ for details). Hibernate is available for download at http://www.hibernate.org.
This tutorial aims to provide insight into Hibernate version 3.0RC and its usage
Some of the main features of hibernate are listed below and we have tried to explain some of them in detail later in this tutorial.
| Start) Transparentpersistence without byte code processing |
| | Transparent persistence |
| | JavaBeans style properties are persisted |
| | No build-time source or byte code generation /processing |
| | Support for extensive subset of Java collectionsAPI |
| | Collection instance management |
| | Extensible type system |
| | Constraint transparency |
| | Automatic Dirty Checking |
| | Detached object support |
| Object-oriented querylanguage |
| | Powerful object-oriented query language |
| | Full support for polymorphic queries |
| | New Criteria queries |
| | Native SQL queries |
| Object /Relational mappings |
| | Three different O/R mapping strategies |
| | Multiple-objects tosingle-row mapping |
| | Polymorphic associations |
| | Bidirectional associations |
| | Association filtering |
| | Collections of basic types |
| | Indexed collections |
| | Composite Collection Elements |
| | Lifecycle objects |
| Automaticprimary key generation |
| | Multiple synthetic key generation strategies |
| | Support for application assigned identifiers |
| | Support for composite keys |
| Object/Relational mappingdefinition |
| | XML mapping documents |
| | Human-readable format |
| | XDoclet support |
| HDLCA (Hibernate Dual-Layer CacheArchitecture) |
| | Thread safeness |
| | Non-blocking data access |
| | Session level cache |
| | Optional second-level cache |
| | Optional query cache |
| | Works well with others |
| High performance |
| | Lazy initialization |
| | Outer join fetching |
| | Batch fetching |
| | Support for optimistic locking withversioning/timestamping |
| | Highly scalable architecture |
| | High performance |
| | No "special" database tables |
| | SQL generated at system initialization time |
| | (Optional) Internal connection pooling andPreparedStatement caching |
| J2EE integration |
| | JMX support |
| | Integration with J2EE architecture (optional) |
| | New JCA support (Finish) |