If this is for 1.1, you need to demarcate the transactions using the TransactionContextManager. I suggest you take a look at the OnlineUserTransaction for a good example.

-dain

On Aug 8, 2006, at 4:28 PM, Aaron Mulder wrote:

OK, so for this JPA plugin, the goal is to support application-managed
JPA for web apps.

It looks like a JPA EntityManager has a call to getTransaction
returning an EntityTransaction which you can used to begin and commit
transactions in the non-JTA case (which, for now, let's assume this
would be).

So I'm thinking the code would look like this:

EntityManager mgr = ...
EntityTransaction tx = mgr.getTransaction();
tx.begin();
// save some JPA changes
tx.commit();

There was a comment that we shouldn't used Geronimo DB pools with JPA,
which I don't follow.  What is the suggested way to hook the JPA
provider up to the database?  It looks like you provide a
PersistenceUnitInto with methods getJtaDataSource and
getNonJtaDataSource...  I don't know which one of these a Geronimo DB
pool would be.  Does it depend on whether the pool claims to support
none, local, or XA transactions?

Also, I guess I need to figure out whether we could be in the JTA case
-- I'm not sure if supplying a JTA DataSource is enough.  Maybe then
the code would look like this:

UserTransaction tx = ...
tx.begin();
// save some JPA changes
tx.commit();

I'll keep reading the JPA spec, but in the mean time, if anyone has a
full understanding of this, some insight would be great.

Thanks,
    Aaron

Reply via email to