Using Hibernate as an EJB BMP Solution
Hibernate is intended to work in a wide variety of environments, and works well as a bean-managed persistence (BMP) solution when used in a variety of J2EE application servers. In fact, JBoss has indicated that a future version of its software will likely use Hibernate as the basis for container-managed persistence (CMP).
The development process for BMP and EJB varies tremendously from development environment to environment and therefore is beyond the scope of this text. Conceptually, however, you are relying on your J2EE application server to provide a variety of services, such as identity management, clustering, and JDBC connection pooling, when you use Hibernate to handle the actual generated persistence (specifically, the generated SQL). This affords several advantages, such as the ability to unit test your database access logic outside the context of a full application server and also the ability to understand the persistence performance characteristics of an application independent of the application server. Let's say, for example, that you develop an application intended to target three different application servers. By using Hibernate as your persistence mechanism, you can test your application against your target databases with a greater sense of independence for the tests with the different application servers.
In any event, Hibernate should at most be considered an alternative to EJB container-managed persistence, not the full EJB specification.
If you are interested in using Hibernate in conjunction with EJB, you will find descriptions of the general integration at http://hibernate.org/82.html and http://hibernate.org/166.html. A description of how to add Hibernate as a service to your JBoss installation can be found at http://hibernate.org/66.html.
|