Hibernate 3.1.1 Released

Hibernate is a powerful, high performance object/relational persistence and query service.

Hibernate 3.1.1 Released

Hibernate 3.1.1 Released

Back to Hibernate Tutorials Page

Hibernate is a powerful, high performance object/relational persistence and query service. Hibernate lets you develop persistent classes following object-oriented idiom - including association, inheritance, polymorphism, composition, and collections. Hibernate allows you to express queries in its own portable SQL extension (HQL), as well as in native SQL, or with an object-oriented Criteria and Example API.

Hibernate 3.1.1 has been released with new features and promises on Jan 13, 2006. This maintenance release focused on bug fixes and improvements, especially regarding:

  • SQL Server support
  • Native Query support
  • Connection handling


  • DML-style HQL queries and associations
  • FORWARD_ONLY ScrollableResults#next() throw GenericJDBCException
  • Set entity in HQL query without prefix -> incorrect SQL
  • Session.createFilter(...).iterate() results in bogus column names for result set extraction
  • float/double literals not sent to the database correctly
  • SchemaUpdate : java.sql.SQLException: You cannot commit during a managed transaction!
  • org.hibernate.util.SimpleMRUCache keeps a soft reference to the cache key, so cached values get collected prematurely
  • ForeignGenerator does not handle transient entities with an entity-name properly
  • Mapped <component> generated column names incorrect with ImprovedNamingStrategy
  • HQL delete statement problem due to oracle lacking table aliases in delete clause
  • creating temporary table for bulk delete will commit current transaction in managed environment such as J2EE


  • Native SQL return-property mapping doesn't support dot-syntax in return-property for components
  • Defensive checking of session status
  • query.getReturnTypes inconsistent
  • better handling of borrowed connections in non-ON_CLOSE release semantics
  • schemaupdate does not handle TableHiLoGenerator
  • empty property name in mapping file gives imcomprehensible error message
  • ANSI-SQL trim function for SQLServer
  • ANSI-SQL mod function for SQLServer
  • ANSI-SQL bit_length function for SQLServer
  • <return-scalar name="blah"/> should be possible
  • set autodiscovery flag for SQLQueries when resultsetmappings are used
For more details check out the release notes.

Hibernate 3.1 introduced non OLTP features as well as better environment integration:
  • Custom strategy for session handling through CurrentSessionContext including 2 default implementations (JTA based and ThreadLocal based session handling)
  • more natural and aggressive connection handling in J2EE and J2SE environments
  • command-oriented API (StatelessSession API) for operations on huge number of objects
  • bulk UPDATE, DELETE, INSERT INTO ... SELECT for multi-table entities
  • "extra lazy" collections for huge collection handling
  • use of join fetch on collection through scrollable resultsets through break processing
  • database generated properties (including database timestamps)
  • additional ON clauses for joins
  • dirty checking short-cuts for instrumented classes
Hibernate 3.1.1 can be downloaded from here.