Tutorial Home
Hibernate
-
Advantage of Hibernate over JDBC
- Hibernate Setup with an web Application
- First Hibernate Application
- Hibernate mapping with Database TABLE
- Hibernate Data Type-Java Data Type - SQL Data Type mapping
- One to Many Relation in Hibernate
- One to Many Relation in Hibernate bi-directional
- Many to Many Relation in Hibernate
- HQL: The Hibernate Query Language
- Criteria Queries
- Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results
- Criteria Queries: And OR conditions
- Hibernate generator to generate id (primary key)
- prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate
Struts
- Model View Controller (MVC)
- Model View Controller (MVC)
- Struts Flow-How Struts Works?
- Struts Tutorial - Struts Setup- First Struts Action class setup
- Message Resources
- Validation Framework
- Validation Framework-client side
- ForwardAction
- IncludeAction
- DispatchAction
- LookupDispatchAction
- DynaActionForm
- DynaActionForm
- Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission
- Logic Iterate Map and List
JSP
- JSP Tutorial
- Introduction to JSP
- JSP Comments
- JSP Syntax
- JSP Scripting Elements :Scriptlet, expression, declaration
- JSP Directives
- implicit objects in JSP
- JSP Actions
- Introduction to JSP
- jsp:useBean
- The jsp:setProperty Action
- The jsp:getProperty Action
- Introduction to JSP
Spring
- Spring Tutorial
- Introduction to Spring
- Benefits of Using Spring Framework
- Inversion of Control in Spring
- Introduction to BeanFactory
- Dependency Injection in Spring
- Collections Setter Injection
- Bean Scopes in Spring
- Spring IOC Setup Step by Step
- Bean Lifecycle in Spring
- ApplicationContext
- MessageSources in Spring
- Web Spring MVC framework
- Developing Your First Spring Web Application
- Developing Your Second Spring Web Application with Spring Form
- Developing Your First Spring Web Application with Spring Validation Framework with Code Example
- Spring integration with Hibernate
|
Life cycle of
a CMP entity bean.
An entity bean instance is in one of the following THREE states:
DOES NOT EXIST state.
POOLED state. An instance in the pooled state is not associated with
any particular entity object identity.
READY state. An instance in the ready state is assigned an entity object identity.
The following steps describe the life cycle of an entity bean instance:
An entity bean instance’s life starts when the container creates the instance
using newInstance(). The container then invokes the
setEntityContext() method to pass the instance a
reference to the EntityContext interface. The
EntityContext interface allows the instance to invoke
services provided by the container and to obtain the information about the
caller of a client-invoked method.
The instance enters the pool of available instances. Each entity bean has its
own pool. While the instance is in the available pool, the instance is not associated
with any particular entity object identity. All instances in the pool are
considered EQUIVALENT, and therefore ANY instance can be assigned by the container
to any entity object identity at the transition to the READY state. While the
instance is in the POOLED state, the container may use the instance to execute
any of the entity bean’s FINDER methods
(ejbFind<METHOD>(...)) or any of the entity bean’s
HOME methods (ejbHome<METHOD>(...)). The instance
DOES NOT move to the ready state during the execution of a finder or a
home method. An ejbSelect<METHOD>(...) method may be
called by an entity bean’s home method while the instance is in the pooled state.
public abstract class AddressBean implements javax.ejb.EntityBean {
...
// Customer home methods.
// These are wrappers of ejbSelect methods
public Collection ejbHomeQueryZipCodes(String state)
throws FinderException {
return ejbSelectZipCodes(state);
}
public Collection ejbHomeQueryAll()
throws FinderException {
return ejbSelectAll();
}
public CustomerLocal ejbHomeQueryCustomer(AddressLocal addr)
throws FinderException {
return ejbSelectCustomer(addr);
}
...
}
An instance transitions from the pooled state to the ready state when the
container selects that instance to service a client call to an entity object.
There are TWO possible transitions from the pooled to the ready state:
Through the ejbCreate<METHOD>(...) and
ejbPostCreate<METHOD>(...) methods.
The CONTAINER invokes the ejbCreate<METHOD>(...)
and ejbPostCreate<METHOD>(...) methods when the
instance is assigned to an entity object during entity object creation
(i.e., when the CLIENT invokes a create(...) method on
the entity bean’s home object).
Through the ejbActivate() method.
The CONTAINER invokes the ejbActivate() method on
an instance when an instance needs to be activated to service an
invocation on an existing entity object - this occurs because there is
no suitable instance in the ready state to service the client’s call.
When an entity bean instance is in the READY state, the instance is associated
with a specific entity object identity. While the instance is in the ready
state, the container can synchronize the state of the instance with the state
of the entity in the underlying data source whenever it determines the need to,
in the process invoking the ejbLoad() and
ejbStore() methods ZERO or more times. A business method
can be invoked on the instance ZERO or more times. Invocations of the
ejbLoad() and ejbStore() methods can be
arbitrarily mixed with invocations of business methods.
An ejbSelect<METHOD> method CAN be called by a
business method (or ejbLoad() or
ejbStore() method) while the instance is in the READY state.
The container CAN choose to passivate an entity bean instance
WITHIN a transaction. To passivate an instance, the container first invokes the
ejbStore() method to allow the instance to prepare itself for
the synchronization of the database state with the instance’s state, and then
the container invokes the ejbPassivate() method to return
the instance to the POOLED state.
The container will transition the instance to the pooled state. There are
THREE possible transitions from the ready to the POOLED state:
Through the ejbPassivate() method.
The CONTAINER invokes the ejbPassivate() method
when the container wants to disassociate the instance from the
entity object identity without removing the entity object.
Through the ejbRemove() method.
The CONTAINER invokes the ejbRemove() method
when the container is removing the entity object (i.e., when the
CLIENT invoked the remove() method on the
entity object’s component interface or
a remove(...) method on the entity bean’s
home interface).
Because of a transaction rollback for
ejbCreate(), ejbPostCreate(),
or ejbRemove().
If ejbCreate(),
ejbPostCreate(), or
ejbRemove() is called and the transaction
rolls back, the container will transition the bean instance to
the POOLED state.
When the instance is put back into the pool, it is no longer associated with
an entity object identity. The container can assign the instance to any entity
object within the same entity bean home.
The CONTAINER can REMOVE an instance in the pool by calling the
unsetEntityContext() method on the instance.
NOTE:
The result of the EntityContext.getPrimaryKey() method
MIGHT BE DIFFERENT each time an instance moves from the pooled state to the
ready state, and the result of the getCallerPrincipal()
and isCallerInRole(...) methods MAY BE DIFFERENT in
each business method.
A RuntimeException thrown from any method of an entity
bean class (including the business methods and the callbacks invoked by
the container) results in the transition to the DOES NOT EXIST state.
From the caller’s perspective, the corresponding entity object CONTINUES to
exist. The client CAN continue accessing the entity object through its component
interface because the container can use a different entity bean instance to
delegate the client’s requests.
The container is NOT REQUIRED to maintain a pool of instances in the
pooled state. The pooling approach is an example of a possible implementation.
|
|