Develop enterprise beans
One of two enterprise bean development scenarios is typically used with WAS ND. The first is command-line using Ant, Make, Maven or similar tools. The second is an IDE-based development and build environment. The steps in this article focus on development without an IDE. EJBs 2.x beans only: Design a J2EE application and the enterprise beans that it needs.
Before developing entity beans with container-managed persistence (CMP), read the topic Concurrency control.
EJB 3.0 beans only: Design a Java EE application and the enterprise beans that it needs.
- EJB 3.0 modules do not support entity beans. You must continue to place entity beans in the EJB 2.x-level modules.
The following is more information about the two basic approaches to selecting tools for developing enterprise beans:
- Use one of the available IDE tools that automatically generate significant parts of the enterprise beans code and contain integrated tools for packaging and testing enterprise beans. The Rational Application Developer product is the recommended IDE.
See the documentation for that product.
To use the assembly tools with EJB 3.0 modules, we need to add...
<WAS_HOME>/lib/j2ee.jar...to the project's build path to resolve compilation dependencies on the new EJB 3.0 API classes. Code assist works once this is done. If we define a server (see J2EE Perspective), point the server to the product install directory. Before you create the project, the project automatically refers to...
<WAS_HOME>/lib/j2ee.jarBe sure to create the server with the setting Run server with resources on Server.
- If we have decided to develop enterprise beans without an IDE, we need at least an ASCII text editor. We can also use a Java development tool that does not support enterprise bean development. We can then use tools available in the Java SDK and in this product to assemble, test, and deploy the beans.
Like the assembly tool, a standard Java EE command-line build environment requires some change to utilize the EJB 3.0 modules. As with previous Java EE application development patterns, include the j2ee.jar file located in...
<WAS_HOME>/lib/...on the compiler classpath. An example of a command-line build environment using Ant is located in...
<WAS_HOME>/samples/src/TechSamp
The following steps primarily support the second approach, development without an IDE.
- If necessary, migrate any pre-existing code to the required version of the EJB specification.
Applications written to the EJB spec versions 1.1, 2.0, and 2.1 can run unchanged in the EJB 3.0 container.
- Write and compile the components of the enterprise bean.
- At a minimum, a session bean developed with the EJB 3.0 specification requires a bean class and a business interface.
- At a minimum, an EJB 1.1 session bean requires a bean class, a home interface, and a remote interface. An EJB 1.1 entity bean requires a bean class, a primary-key class, a home interface, and a remote interface.
- At a minimum, an EJB 2.x session bean requires a bean class, a home or local home interface, and a remote or local interface. An EJB 2.x entity bean requires a bean class, a primary-key class, a remote home or local home interface, and a remote or local interface. The types of interfaces go together: If we implement a local interface, also define a local home interface.
Optionally, the primary-key class can be unknown. See unknown primary-key class for more information.
- A message-driven bean requires only a bean class.
- For each entity bean, complete work to handle persistence operations.
For EJB 3.0 modules, consider using the Java Persistence API (JPA) specification to develop plain old Java Object (POJO) persistent entities. Review the topic "Java Persistence API" for more information. If we choose to develop entity beans to earlier EJB specifications, follow the steps below:
- Create a database schema for the entity bean's persistent data.
- For entity beans with CMP, store the bean's persistent data in one of the supported databases. The assembly tool automatically generates SQL code for creating database tables for CMP entity beans. If the CMP beans require complex database mappings, it is recommended that you use Rational Application Developer to generate code for the database tables.
See on using the assembly tools see the assembly tool information center at http://publib.boulder.ibm.com/infocenter/radhelp/v7r5mbeta/topic/com.ibm.jee5.doc/topics/cejb3.html
- For entity beans with bean-managed persistence (BMP), we can create the database and database table by using the database tools or use an existing database and database table.
See on creating databases and database tables, review your database documentation.
- (CMP entity beans for EJB 2.x only)
Define finder queries with EJB Query Language (EJB QL).
Define finder queries with EJB Query Language (EJB QL). With EJB QL, you define finders in terms of CMP fields and container-managed relationships, as follows:
- Public finders are visible in the bean's home interface. Implemented in the bean class, they return only remote interfaces and collection types.
- Private finders, expressed as SELECT statements, are used only within the bean class. They can return both local and remote interfaces, dependent values, other CMP field types, and collection types.
- (CMP entity beans for EJB 1.1 only: an IBM extension) Create a finder helper interface for each CMP entity bean that contains specialized finder methods (other than the findByPrimaryKey method).
The following logic is required for each finder method (other than the findByPrimaryKey method) contained in the home interface of an entity bean with CMP:
- The logic must be defined in a public interface named NameBeanFinderHelper, where Name is the name of the enterprise bean, for example, AccountBeanFinderHelper.
- The logic must be contained in a String constant named findMethodName
WhereClause, where findMethodName is the name of the finder method. The String constant can contain zero or more question marks (?) that are replaced from left to right with the value of the finder method's arguments when that method is called.
Next steps
Assemble the beans in one or more EJB modules
Assemble the beans in one or more EJB 3.0 modules.
EJBs 3.0 specification
EJB 3.0 considerations
EJB 3.0 metadata annotations
EJB 3.0 interceptors
Create stubs
EJB 3.0 application bindings overview
EJB 3.0 module packaging overview
EJB 3.0 deployment overview
Develop read-only entity beans
Migrate enterprise bean code to the supported specification
WebSphere extensions to the Enterprise Java Beans specification
Enterprise bean development best practices
Set the run time for batched commands with JVM arguments
Set the run time for deferred create with JVM arguments
Set partial update for container-managed persistent beans
Set persistence manager cache invalidation
Set the system property to enable remote EJB clients to receive nested or root-cause exceptions
Unknown primary-key class
Set a timer service
Develop enterprise beans for the timer service
Web services support in EJB
Define data sources for entity beans
Lightweight local operational mode for entity beans
Applying lightweight local mode to an entity bean 
Related concepts
Enterprise beans
Concurrency control
Related tasks
Task overview: Storing and retrieving persistent data with the Java Persistence API (JPA)
Develop applications that use JNDI
Related
http://publib.boulder.ibm.com/infocenter/radhelp/v7r5mbeta/topic/com.ibm.jee5.doc/topics/cejb3.html
Dali JPA Tools