Workshop on EJB 3.0 Persistence – Download Resources

Lucas Jellema 1

Yesterday we had a very enjoyable and I think interesting workshop on EJB 3.0 Persistence. After a very nice dinner on our terrace – it was lovely weather – we discussed the merits of the EJB 3.0 Persistence specification (JSR-220 – accepted on May 1st). After talking about the history of Object Relational Mapping in general and the rise and fall of EJB up to 2.1, as well as the unfortunate career of JDO, we cut to the chase. The EntityManager and its services, the Mapping Annotations and the various implementations, such as Toplink, Hibernate, Kodo and Glassfish.

For the demonstrations and the workshop, we used one of the latest promoted builds from the Glassfish Reference Implementation – to be precise: from the stand alone Persistence Library that was first release on April 20th. Note that instead of 80 Mb, we can now suffice with little over 2 Mb to get started with Glassfishh EJB 3.0 Persistence! Our tool of choice was JDeveloper 10.1.3, but there is nothing specific about the labs or the demo-sources. In fact, the last lab is on Dali, the Eclipse plugin for EJB 3.0 Persistence.

The presentation for this session can be downloaded here: ejb30PersistenceWorkshop9mei2006.ppt.

In a later post, I will go into some of the questions that were raised in the session – there were some very interesting points made.


Workshop Getting started with EJB 3.0 Persistence API

9th May 2006, AMIS – Nieuwegein

In this workshop, we will learn how to get started with the EJB 3.0 Persistence API. We will work with the GlassFish Reference Implementation (Build 48 – see ) , with stand-alone J2SE applications – so outside the container – focusing on the core Persistence API concepts.

In the workshop, we will start with configuring our environment and creating our first running EJB 3.0 Persistence application – the equivalent of an HelloWorld. For this we need only a basic set of Mapping Annotations.

Next we will look at DML operations: how can we use the EntityManager to create, update and remove entities from the persistent store.

The following section discusses more complex Mappings in EJB 3.0 Persistence: mapping Foreign Keys, many to many relationships and intersection tables and dealing with Database Sequences to auto-generate primary key values as well as implementing a simple Optimistic Locking policy.

The last section of today’s workshop is focused on querying data through the EJB 3.0 Persistence API. We will see how we can use EJB QL to execute queries expressed in terms of our entities and attributes – instead of table and column names. Then we will also see how the Query interfaces allows us to perform Native Queries when we want to leverage special database functionality such as Oracle Analytical Functions or Scalar Subqueries. Luckily, we can still map the results of those queries to our Entities.

What we will not do in this workshop: use vendor specific implementations of EJB 3.0 Persistence API such as Toplink 10.1.3 or Hibernate 3.x. We will also not work inside EJB containers (or Servlet containers for that matter). That also means that we will not look into invoking Stored Procedures – not catered for in the EJB 3.0 Persistence specification but supported in vendor specific implementations – or into Caching solutions – also not part of the specification , however required in enterprise level conditions.

Download the workshop materials here: (5Mb).

One thought on “Workshop on EJB 3.0 Persistence – Download Resources

  1. I just came across an article by Debu Panda (dated February 2006) on migrating from plain JDBC based DAOs to EJB 3.0 Persistence based DAOs. I feel this article gives not just a good guideline for making the migration, it also explains very well for people experienced in JDBC and new to EJB 3.0 Persistence API what the latter is all about and how you would use it. You find the article at: Migrating JDBC Data Access Objects to use EJB3

Comments are closed.

Next Post

It's a Chameleon! About JSF Pages that change their appearance mid-flight (or: programmatic manipulation of JSF UI Components)

One of the features in Java Server Faces that distinguishes it from for example JSP technology, is the ability to access UI Components programmatically, at run-time. This makes it possible not only to inspect the state of these components, but also to manipulate them. One advanced type of manipulation is […]
%d bloggers like this: