The Database Table
Here's the schema for the table that our bean uses:
CREATE TABLE MEASUREMENTS ( id NUMBER NOT NULL,
eventTimeStamp DATE,
eventName VARCHAR(50),
eventMagnitude NUMBER
);
Deployment
Deploying this BMP bean is no different from deploying any other BMP bean. As home business
methods are really an implementation detail they have no real effect on the deployment process beyond
the fact that you need to look in a slightly different place for setting transactional and security attributes
for your business methods:
Syntactic Sugar
For the most part, anything you can do with a home business method, you could also do with a stateless
session bean façade. The one exception is that a home business method for an entity bean that uses EJB 2.0
container-managed persistence can access ejbSelect() methods, which a stateless session bean could not.
The primary advantage of home interface methods is that you don't need to write two components (an entity
and its stateless session pair) for functionality that is really very tightly coupled to the entity.
Summary
This chapter talked about the changes in the entity persistence model introduced for EJB 2.0. With the
exception of local interfaces and home business methods, most of the changes are specific to the new
EJB 2.0 model of container-managed persistence. This chapter covered:
-
The advantages of EJB 2.0 container-managed persistence over bean-managed persistence
EJB 2.0 CMP is standards-based. It allows your developers to spend more time on business
logic. Your object-relational mapping layer will have been developed by specialists. Your
components will be portable between persistence managers and between databases.
-
The advantages of EJB 2.0 container-managed persistence over EJB 1.1 container-managed
persistence
The EJB 2.0 model allows the portable, efficient modeling of dependent objects using entities
and local interfaces. It provides a portable query language for finder methods. It solves the
problem of data-aliasing for data and relationships.
-
The types and role of abstract methods in EJB 2.0 persistence
Abstract methods play a key role in the EJB 2.0 persistence model. Abstract accessors are used
to access and modify persistent state and relationship information for entity objects. Abstract
ejbSelect() methods give the component developer access to the new EJB query language.
These abstract methods are key to such optimizations as dirty checking and lazy loading.
-
The separation of the client view from the object model
You cannot pass a local interface or a relationship collection class across a remote interface.
The client never sees the structure of an entity. Instead, the entity provides a view through its
remote interface, possibly by using view objects.
-
The representation of relationships
Relationships are accessed through get and set accessors, and through collection classes if they
have a multiplicity of many. They are also used in the EJB query language, and to manage the
lifespan of entities through cascade-delete. The set accessors of relationships that are
represented by a collection class are only used in special circumstances. Relationships are
defined in the deployment descriptor has having two roles each. A role consists of a
multiplicity, a role source, a cmr-field if necessary, a collection type if necessary, and a
cascade-delete element if necessary.
-
The structure of the EJB query language (EJB QL)
The new query language is based on SQL-92, and is enhanced by path expressions that allow
the component developer to navigate over the relationships defined between entities. Rather
than working with relational database tables, EJB QL works with the definition of an entity in
the deployment descriptor (known as its schema). There are three parts to an EJB QL query:
the SELECT clause, the FROM clause, and the WHERE clause. These queries are used to define
the behavior of finder methods (which are exposed to the client), and ejbSelect() methods
(which are strictly used in the implementation).
-
The structure of the deployment descriptor
The deployment descriptor has a new relationships element to support the EJB 2.0 persistence
model. In addition, there are several additions to the entity element of the enterprise-beans
section to support EJB 2.0 persistence, such as an element for an abstract schema name and
elements to specify queries.
The next chapter will go into greater depth on the new model of container managed persistence. It will
consist of three sections. The first of these sections will cover entity component development. The
second section will talk about relationships, and the relational integrity model of EJB 2.0. The third
section will describe the new query language in more depth.
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.
|