Entity beans are server-side components that are persistent and transactional. They are used to model persistent data objects. An entity bean can manage its own persistent state in a datastore and its own relationships, in which case it is a bean-managed persistence (BMP) entity bean. Or, it can let the EJB container manage its persistent state and relationships, in which case it is a container-managed persistence (CMP) entity bean. Container-managed persistence has changed significantly in the 2.0 specification from the earlier specifications.
Bean-Managed Transaction Suspension in J2EE
Container-managed transactions seem more capable than bean-managed transactions in the EJB spec, with the latter unable to, for example, suspend and resume transactions. But what looks like a limitation isn't necessarily so, according to Dmitry Maximovich, who shows you how to get to the underlying
TransactionManager, making BMT as powerful as CMT.
Business Logic, Part 1
In this excerpt from Chapter 8 of Building Java Enterprise Applications, Vol I: Architecture, Brett McLaughlin discusses the fašade pattern, in which you use session beans to access entity beans. This access method is used instead of allowing direct access to entity beans, and is key to a sound strategy in building enterprise applications.