The container-managed persistence (CMP) features include those defined by the EJB 2.0 Specification, as well as capabilities that are beyond the specification.
EJB 2.0 specified capabilities
Container-Managed Relationships (CMR) is one of the most significant new features added by the EJB 2.0 Specification. Like Inheritance, relationships are a key component of object-oriented software development and non-trivial object models can form complex networks with these relationships. The EJB 2.0 Specification adds relationships to the EJB programming model and requires that the container be responsible for their maintenance.
The container automatically manages the state of CMP entity beans. This management includes synchronizing the state of the bean with the underlying database when necessary and also managing any relationships (CMRs) with other entity beans. The bean developer is relieved of writing any database specific code and, instead, can focus on business logic.
Local interfaces are another feature introduced in the EJB 2.0 Specification. Local component interfaces allow collocated beans to interact without the overhead associated with remote access.
Value-add features
Several capabilities are provided to enhance the function of CMP entity beans that go beyond those capabilities defined by the specification. These include:
The use of inheritance enables a developer to define fields, relationships, and business logic in a superclass entity bean that are inherited by all subclasses. See the section EJB inheritance of the WebSphere Studio Application Developer (WSAD) documentation for details on using inheritance with WebSphere Application Server and entity beans.
The use of preceding or following midnight to calculate a future time value depends on the value of LifetimeInCache. If LifetimeInCache plus preceding midnight is earlier than the current time, then the following midnight is used.
When you use ClockTime, the value of LifetimeInCache must not represent more than 24 hours. If it does, the Cache Manager subtracts increments of 24 hours from it until a value less than or equal to 24 hours is achieved. To invalidate data at 12 midnight, you set LifetimeInCache to zero (0).