Hibernate

The Tapestry-Hibernate Integration Library provides out-of-the-box support for using Hibernate 3 as the back end for normal CRUD style Tapestry applications.

This represents access to the native Hibernate interfaces, exposed in a thread-safe manner, within a session-per-request strategy.

Note that a number of the more esoteric ideas in Hibernate are not supported, including nested transactions and supporting multiple persistence units.

The tapestry-hibernate-core module allows non-Tapestry applications to access Hibernate.

Licensing Issues

Hibernate is licensed under the Lesser GNU Public License. This is more restrictive license than the Apache Software License used by the rest of Tapestry. The restrictions mostly apply to redistributing Hibernate, especially in any altered form, and will likely be irrelevant to the vast majority of users, but you should be aware.

This library is compiled against version 3.3.1.GA of Hibernate (and version 3.4.0.GA of hibernate-annotations), but should work with more recent versions.

Notes

  • Transactions are aborted (not committed) at the end of each request: you must explicitly commit the transaction if changes are to be saved.
  • The CommitAfter annotation for component and service methods can commit the transaction automatically after the method is invoked.
  • HibernateGridDataSource can be used with the Grid component to support optimized queries against large data sets.