Sunday, December 17, 2006

What is New in EJB 3.0

The Enterprise JavaBeans 3.0 architecture extends Enterprise JavaBeans to include the following new functionality and simplifications to the earlier EJB APIs:

  • Definition of the Java language metadata annotations that can be used to annotate EJB applications.
  • Specification of programmatic defaults, including for metadata, to reduce the need for the developer to specify common, expected behaviors and requirements on the EJB container. A “configuration by exception” approach is taken whenever possible.
  • Encapsulation of environmental dependencies and JNDI access through the use of annotations, dependency injection mechanisms, and simple lookup mechanisms.
  • Simplification of the enterprise bean types.
  • Elimination of the requirement for EJB component interfaces for session beans. The required business interface for a session bean can be a plain Java interface rather than an EJBObject, EJBLocalObject, or java.rmi.Remote interface.
  • Elimination of the requirement for home interfaces for session beans.
  • Simplification of entity persistence through the Java Persistence API. Support for light-weight domain modeling, including inheritance and polymorphism.
  • Elimination of all required interfaces for persistent entities.
  • Specification of Java language metadata annotations and XML deployment descriptor elements for the object/relational mapping of persistent entities.
  • A query language for Java Persistence that is an extension to EJB QL, with addition of projection, explicit inner and outer join operations, bulk update and delete, subqueries, and group-by. Addition of a dynamic query capability and support for native SQL queries.
  • An interceptor facility for session beans and message-driven beans.
  • Reduction of the requirements for usage of checked exceptions.
  • Elimination of the requirement for the implementation of callback interfaces.