Transcript Entity Bean

Entity Bean
Chuyên đề Lập trình Java & J2EE
Chương 15
Biên soạn: Th.S Nguyễn văn Lành
1
Concepts

An entity bean represents persistent data stored in one
row of a database table .


When an entity bean is created, the data is written to the
appropriate database table row, and if the data in an entity bean
is updated, the data in the appropriate database table row is also
updated
Entity beans differ from session beans in several ways.




Entity beans are persistent: entity bean's state exists beyond the
lifetime of the application
allow shared access: may be shared by multiple clients
have primary keys: unique object identifier
may participate in relationships with other entity beans
2
When to Use Entity Beans

The bean represents a business entity,
not a procedure.



For example, CreditCardEJB would be an
entity bean
CreditCardVerifierEJB would be a session
bean.
The bean's state must be persistent
3
Types of persistent management

Bean-Managed Persistence


Container-Managed Persistence 1.1


the bean developer takes responsibility for
persistent storage in attributes
persistent attributes are defined as attributes of
the bean class and given in the deployment
descriptor
Container-Managed Persistence 2.0/2.1


The bean developer works with an abstract bean class
defines abstract access methods for reading and writing of
attributes (During deployment the EJB container generates a
derived class that implements all the abstract methods )
4
Constitution of a entity bean

Remote interface:


Home interface:


makes it possible to identify all entity bean identities uniquely
Deployment Descriptor:


provides the implementation for the business methods, finder
methods, home methods
Primary key class


defines the methods that allow a client to create and find an
entity bean
Enterprise Bean class:


defines the business methods of the bean.
This configuration document defines the bean's runtime
attributes, such as its transaction or security attributes
Helper classes
5
Remote Interface




Each method in the remote interface must match
a method in the enterprise bean class.
The signatures of the methods in the remote
interface must be identical to the signatures of the
corresponding methods in the enterprise bean
class.
The arguments and return values must be valid
RMI types.
The throws clause must include
java.rmi.RemoteException
6
Home Interface


defines the methods that allow a client to create
and find an entity bean
create Method




has the same number and types of arguments as its
matching ejbCreate method in the enterprise bean
class.
returns the remote interface type of the enterprise
bean.
The throws clause includes the exceptions specified
by the throws clause of the corresponding ejbCreate
and ejbPostCreate methods.
The throws clause includes the javax.ejb.CreateException
& java.rmi.RemoteException
7
Entity bean creation
8
Home Interface

finder Method






Every finder method in the home interface corresponds to a
finder method in the entity bean class.
The name of a finder method in the home interface begins with
find, whereas the corresponding name in the entity bean class
begins with ejbFind
The number and types of arguments must match those of the
corresponding method in the entity bean class.
The return type is the entity bean's remote interface type, or a
collection of those types.
The exceptions in the throws clause include those of the
corresponding method in the entity bean class.
The throws clause contains the javax.ejb.FinderException &
java.rmi.RemoteException
9
Home Interface

finder Method in bean class




All finder methods must begin with ejbFind.
You must have at least one finder method, called
ejbFindByPrimaryKey.
You can have many different finder methods, each
with different names and different parameters.
A finder method must return either the primary
key for the entity bean it finds or a collection of
primary keys if it finds more than one.
10
Home Interface

home Method



Each home method definition in the home interface
corresponds to a method in the entity bean class.
In the home interface, the method name is arbitrary,
provided that it does not begin with create or find.
In the bean class, the matching method name begins
with ejbHome.


For example, in the SavingsAccountBean class the name is
ejbHomeChargeForLowBalance, but in the
SavingsAccountHome interface the name is
chargeForLowBalance
The throws clause contains the
java.rmi.RemoteException
11
BMP guidelines
12
BMP guidelines
13
BMP guidelines
14
BMP guidelines
15
16
Bean-DBMS synchronization
17
CMP Entity Beans

CMP Entity Beans Are Subclassed
 database-independent
The container generates the JDBC code by
subclassing your entity bean class.
CMP Entity Beans Have No Declared Fields
CMP Entity Beans Have a Query Language
CMP Entity Beans Can Have ejbSelect() Methods




18
Bean instance Pooling
19
CMP Guidelines
20
CMP Guidelines
21
CMP Guidelines
22
23
24
25
26
27