List of Tables – EJB 3 in Action

List of Tables

Chapter 1. What’s what in EJB 3

Table 1.1. Major EJB 3 component services and why they are important to you. The persistence services are provided by the JPA provider.

Chapter 2. A first taste of EJB

Table 2.1. Major metadata annotations introduced in Java EE. Although primarily geared toward EJB, these annotations apply to Java EE components such as servlets and JSF managed beans as well as application clients. Annotations defined in the javax.annotation.* package are defined by the Common Metadata Annotations API (JSR-250).

Chapter 3. Building business logic with session beans

Table 3.1. Lifecycle callbacks are created to handle lifecycle events for an EJB. You can create these callback methods either in the bean class or in an external interceptor class.

Table 3.2. The main differences between stateless and stateful session beans

Chapter 4. Messaging and developing MDBs

Table 4.1. JMS session acknowledge modes. For nontransacted sessions, you should choose the mode most appropriate for your project. In general, Auto-acknowledge is the most common and convenient. The only other mode supported with MDB is Dups-ok-acknowledge.

Table 4.2. Commonly used message selector types. The selector syntax is almost identical to the SQL WHERE clause.

Chapter 5. Learning advanced EJB concepts

Table 5.1. You can use javax.ejb.EJBContext to access runtime services.

Table 5.2. The @Resource annotation can be used to inject resources. The parameters in the table are not used regularly and are included for your reference in case you need them.

Table 5.3. Differences between lifecycle and business method interceptors. Lifecycle interceptors are created to handle EJB lifecycle callbacks. Business method interceptors are associated with business methods, and are automatically invoked when a user invokes the business method.

Chapter 6. Transactions and security

Table 6.1. A transaction may be either local or global. A local transaction involves one resource and a global transaction involves multiple resources.

Table 6.2. Effects of transaction attributes on EJB methods

Table 6.3. The possible values of the javax.transaction.Status interface. These are the status values returned by the UserTransaction.getStatus method.

Chapter 7. Implementing domain models

Table 7.1. Data types allowable for a persisted field/property

Table 7.2. Domain relation types and corresponding annotations

Table 7.3. Elements available in the @OneToOne, @OneToMany, @ManyToOne, and @ManyToMany annotations

Chapter 8. Object-relational mapping

Table 8.1. The impedance mismatch: obvious differences between the object and relational worlds

Table 8.2. The EJB 3 JPA supports three different inheritance strategies. The table-per-class choice is optional and the worst of these strategies.

Chapter 9. Manipulating entities with EntityManager

Table 9.1. The EntityManager is used to perform CRUD operations. Here are the most commonly used methods of the EntityManager interface.

Table 9.2. The EntityManager factory is used to create an instance of an application-managed EntityManager.

Table 9.3. Effects of various cascade type values.

Table 9.4. Behavior of loading of associated entity is different for each kind of association by default. We can change the loading behavior by specifying the fetch element with the relationship.

Table 9.5. Callbacks supported by JPA and when they are called

Chapter 10. Using the query API and JPQL to retrieve entities

Table 10.1. Comparing a JDBC basic query to a JPA query. The JDBC SQL query returns the data in the database table whereas the JPQL query returns JPA entities.

Table 10.2. The EntityManager interface provides several methods to create queries using either JPQL or native SQL statements.

Table 10.3. The javax.persistence.Query interface enables developers to set parameters for a query, set pagination properties, control the flush mode, and retrieve results for the query.

Table 10.4. Defined flush modes for persistence providers and how the flush mode affects the results of a query

Table 10.5. You can use the setHint method of the Query interface to specify query hints to the persistence provider. Common query hints are supported by two popular ORM frameworks.

Table 10.6. Statement types supported by the Java Persistence Query Language

Table 10.7. JPQL keywords reserved by the specification. You are not allowed to give any of your variables these names.

Table 10.8. Operators supported by JPQL

Table 10.9. Results of boolean operations involving null

Table 10.10. JPQL String functions

Table 10.11. JPQL arithmetic functions

Table 10.12. JPQL temporal functions

Table 10.13. JPQL aggregate functions

Chapter 11. Packaging EJB 3 applications

Table 11.1. Enterprise Java applications need to be assembled into specific types of JAR files before they can be deployed to an application server. These are the available module types as specified by Java EE

Table 11.2. A standard archive may load classes either packaged inside it or from any other archives it is dependent on.

Table 11.3. One-to-one mapping between annotations and XML descriptor elements

Table 11.4. Vendor-specific deployment descriptors for popular application servers

Table 11.5. Mapping of persistence annotations to associated deployment descriptor elements

Chapter 12. Effectively integrating EJB 3 across your application tiers

Table 12.1. An EJB can be accessed from different types of classes in the web tier. Only managed classes can use dependency injection; nonmanaged application components have to use JNDI lookup to obtain a reference to a session bean.

Chapter 14. Migrating to EJB 3

Table 14.1. EJB 2 required many interfaces that needed to extend EJB-specific interfaces. EJB 3 makes the home interface optional.

Table 14.2. EJB 2 required implementation of several lifecycle methods. If you implemented any of your application’s business logic in any of these methods, then you can use the corresponding methods in EJB 3 to migrate that business logic.

Table 14.3. The use of DataSource in EJB 2 was very complex and has been simplified in EJB 3 by using dependency injection.

Table 14.4. The use of JMS objects in EJB 2 was also very complex and has been simplified in EJB 3 by using dependency injection.

Table 14.5. EJB 2 required implementations of many lifecycle methods. EJB 3 allows you to define lifecycle callback methods. This table lists the corresponding methods for EJB 3 JPA that you can use to migrate an entity bean’s lifecycle methods.

Table 14.6. Comparison of application code to persist an instance of an entity with two popular O/R frameworks

Chapter 15. Exposing EJBs as web services

Table 15.1. Specifications Java EE 5.0 builds on to support web services

Table 15.2. Feature comparison of Java web services to EJB 3 web services

Table 15.3. Elements of @WebServiceRef

Chapter 16. EJB 3 and Spring

Table 16.1. Spring classes available for using JPA

Table 16.2. Important JpaTemplate methods provided by Spring

Table 16.3. Spring support classes for building Spring-enabled EJBs

Appendix A. RMI and JNDI

Table A.1. Common JNDI environment properties required for creating an initial context to connect to a remote JNDI service provider in a Java EE environment. These are specified either as system properties in the jndi.properties file in the JVM at the client side or as Property object entries passed to the constructor in your Java code. Of these options, a properties file is recommended as it improves maintainability of your application code.

Appendix B. Reviewing relational databases

Table B.1. Common column data types and their Java equivalents