EJB 2.0 Solutions
The Enterprise JavaBeans 2.0 specification provided comprehensive solutions to the problems of EJB
1.1 container-managed persistence by introducing a new model of container-managed persistence and
adding the concept of local interfaces. Here is how some of its features match up to the problems of EJB
1.1 container-managed persistence. This chapter will provide explanations for all of these features:
| EJB 1.1 Problem |
EJB 2.0 Solution |
| No appropriate way to represent dependent
objects of entity beans. |
Introduction of local interfaces, which
mitigates some of the performance issues of
entity beans and also allows you to hide your
object model from a remote client.
|
No foolproof way to implement load-on-
demand.
No foolproof way to implement dirty
checking. |
EJB 2.0 CMP entities use abstract accessor
methods to set and retrieve data. The EJB
container provides an implementation of
these accessor methods, where load-on-
demand and dirty checking logic can be
located. Furthermore, relationships are also
represented by abstract accessor methods and
collection classes maintained by the EJB
container. This allows relationships to be
intelligently managed. |
| No portable way to ensure that the contents
of a collection are suitable for the container's
persistence strategy. |
Collection classes maintained by the EJB
container are subject to usage rules that simplify
the object-relational mapping. For instance, only
a single type of entity may be contained in a
persistence-manager collection class. |
| Potential data-aliasing problems with
dependent objects and collections used by
two or more entities in the same transaction. |
Dependent objects are represented by entity
components, whose state is managed by the EJB
container. Relationships are represented by
abstract accessors and special collection classes,
which are also managed by the EJB container.
This allows for synchronization within a
transaction and solves data aliasing problems. |
No portable query language for finders. |
A portable query language based on a subset of
SQL-92 is provided in the EJB 2.0 specification. |
EJB 2.0 Container-Managed Persistence
The EJB 2.0 model of container-managed persistence did not modify the EJB 1.1 model of container-
managed persistence. The specification writers did not want to break existing code. Instead, the two
models for CMP exist side-by-side. The old EJB 1.1 model of CMP has not been deprecated; a
compliant EJB 2.0 container must provide support for both EJB 1.1 CMP and EJB 2.0 CMP. This
decision to introduce an entirely new model allowed for extensive changes to the way EJB 2.0 CMP
works. The following section provides for a tour of some of these changes, before we go on to consider
them in more detail. We'll look quickly at:
-
The role of abstract methods in EJB 2.0 CMP
-
Local and remote client views
- How relationships are represented
-
The EJB 2.0 query language
-
The new structure of the EJB 2.0 deployment descriptor
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|