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
- DML-style HQL (UPDATE, DELETE, INSERT INTO... SELECT)
- Native Query support
- Connection handling
Changes:
- 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
Improvements:
- 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
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