Bean-managed persistence is more complicated than container-managed persistence because you must explicitly write the persistence logic into the bean class. In order to write the persistence handling code into the bean class, you must know what type of database is being used and the how the bean class’s fields map to that database.
Bean-managed persistence gives you more flexibility in how state is managed between the bean instance and the database. Entity beans that are defined by complex joins, a combination of different databases, or other resources such as legacy systems will benefit from bean-managed persistence. Essentially, bean-managed persistence is the alternative to container-managed persistence when the deployment tools are inadequate for mapping the bean instance’s state to the database. It is likely that enterprise developers will use bean-managed persistence for creating custom beans for their business system.
The disadvantage of bean-managed persistence is that more work is
required to define the bean. You have to understand the structure of
the database and develop the logic to create, update, and remove data
associated with an entity. This requires diligence in using the EJB
callback methods such as
ejbStore() appropriately. In addition, you must
explicitly develop the find methods defined in the bean’s home
Another disadvantage of bean-managed persistence is that it ties the bean to a specific database type and ...