Java Reference
In-Depth Information
The session bean class
The CatalogSessionEJBBean class is annotated with the annotation @Stateless .
The mappedName attribute specifies the global JNDI for the session bean. We will use
the mapped name in the test client to lookup the session bean and invoke method(s)
on it. The @Remote annotation indicates that the session bean is a remote interface.
@Stateless(name = "CatalogSessionEJB", mappedName = "EJB3-JSF-
EJB3Model-CatalogSessionEJB")
@Remote
public class CatalogSessionEJBBean implements CatalogSessionEJB { }
In the session bean an EntityManager is injected using the @PersistenceContext
annotation. The unitName is specified, but not required, as the EntityManager
variable name is the same as the persistence unit name:
@PersistenceContext(unitName = "em")
private EntityManager em;
Add a method persistEntity() and a method findEntity() to the session bean
and the remote interface. A method may be added to a session bean by selecting the
session bean node in the Application Navigator , and in the Structure view, right-click
on the session bean node and select EJB (N)|New Method . Similarly, a session bean
field may be added by selecting EJB(N)|New Field . The persistEntity() method
defines parameters for attributes of the Catalog entity class and persists an entity
instance to the database. The findEntity() method finds an entity instance. In the
persistEntity() method, create an Catalog entity instance:
Catalog catalog =new Catalog(author, edition, new Integer(catalogId),
journal,publisher, title);
Invoke the persist(Object) method of EntityManager to persist the
entity bean instance:
em.persist(catalog);
The find() method defines a catalogId parameter and finds an entity instance. In
the find() method, create an instance of the Query object using the createQuery()
method to run a Java persistence query language statement. Bind the catalogId to
a named parameter id using the setParameter() method of the Query object and
run the Java persistence query statement using the getResultList() method, which
returns a List :
List catalogEntry =em.createQuery(
"SELECT c from Catalog c
where c.id=:id").setParameter("id",catalogId).
getResultList();
 
Search WWH ::




Custom Search