Chapter 10. The Entity-Container Contract
Although CMP and BMP entities are programmed differently, their relationships to the container system at runtime is very similar. This chapter covers the relationship between EJBs and their containers. It includes discussions of primary keys, callback methods, and the entity bean life cycle. When differences between CMP and BMP are important, they will be noted.
The Primary Key
A
primary key is an object that uniquely identifies an entity bean. A
primary key can be any serializable type, including
primitive
wrappers (Integer, Double,
Long, etc.) or custom classes defined by the bean
developer. In the Ship EJB discussed in Chapter 7 and Chapter 9, we
used the Integer type as a primary key. Primary
keys can be declared by the bean developer, or the primary key type
can be deferred until deployment. We will talk about deferred primary
keys later.
Because the primary key may be used in remote invocations, it must
adhere to the restrictions imposed by Java RMI-IIOP; that is, it must
be a valid Java RMI-IIOP value type. These restrictions are discussed
in Chapter 5, but for most cases, you just need
to make the primary key serializable. In addition, the primary key
must implement equals( ) and hashCode( ) appropriately.
EJB allows two types of primary
keys: single-field and compound. Single-field
primary keys map to a single persistence field defined in the bean
class. The Customer and Ship EJBs, for example, use a
java.lang.Integer primary key ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access