1.3 Persistence Models
A
persistence model dictates how your components persist themselves to
a data store. The EJB component model, for example, comes with a
built-in persistence model in the form of container-managed
persistence. When you use the container-managed persistence model
with Enterprise JavaBeans, you do not have to write a line of
database access code. Instead, you specify a database mapping when
you deploy the application through deployment configuration files.
The EJB container manages the rest.
Other persistence models may perform all or part of the work
necessary to implement component persistence. Over the course of this
book, we will examine the most popular persistence models for both
the JavaBeans and EJB component models.
1.3.1 EJB Persistence
Until recently, container-managed
persistence in EJB has proven to be insufficient for most application
development. Most EJB developers write their own persistence logic
for their beans—a practice called bean-managed persistence.
Bean-managed EJB programmers use some other persistence model when
constructing their components. The full gamut of EJB-specific
persistence models include:
-
EJB 1.x CMP
-
This model is container-managed persistence (CMP) under the EJB 1.x
specification. As I noted earlier, few people actually use this
persistence model. It has difficulties with such basic persistence
operations as searching and primary key management. It also does not
provide a solid mapping of many-to-many relationships.
-
BMP
-
Bean-managed persistence (BMP) is not itself a persistence model. It
instead means that you are using some non-EJB persistence model for
storage of your EJB components.
-
EJB 2.x CMP
-
Because of the massive shortcomings of EJB 1.x CMP, EJB 2.0
introduced a new container-managed persistence model. Though it is
not yet widely supported, it does promise to address the shortcomings
of EJB 1.x CMP. To meet this challenge, however, it introduces a new
query language. Because many alternative persistence models have
evolved, it is unclear if EJB 2.x CMP will be accepted.
1.3.2 Other Persistence Models
Many persistence models have evolved both to address shortcomings in
EJB persistence models and to support the persistence of non-EJB
systems. If you have read my book Database Programming with
JDBC and Java, then you have seen one such alternative
persistence model. Among today's most popular
alternatives is
Java Data Objects (JDO).
We will examine JDO and my custom persistence model as well as
several others over the course of this book.
|