The Tapestry-hibernate module 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-web 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.

See Supported Environments and Versions for the versions of Hibernate supported.

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.