On 10/16/07, Martin Vysny <[EMAIL PROTECTED]> wrote:
> Okay, it's java:comp/TransactionManager from within a bean, or
> java:openejb/TransactionManager from outside a bean ;) We are using
> Hibernate via the JPA interface as follows:
>
> package com.whitestein.fe.impl.config;
>
> import org.hibernate.transaction.JNDITransactionManagerLookup;
>
> /**
> * Hibernate Transaction manager lookup strategy for OpenEJB.
> *
> * @author mvy
> */
> public class OpenEJBTransactionManagerLookup extends
> JNDITransactionManagerLookup {
>
> @Override
> protected String getName() {
> return "java:comp/TransactionManager"; //$NON-NLS-1$
> }
>
> public String getUserTransactionName() {
> return "java:comp/UserTransaction"; //$NON-NLS-1$
> }
>
> }
>
>
> properties.put(Environment.DIALECT, dbDialect);
> properties.put(Environment.TRANSACTION_MANAGER_STRATEGY,
> OpenEJBTransactionManagerLookup.class.getName());
> properties.put(Environment.TRANSACTION_STRATEGY,
> CMTTransactionFactory.class.getName());
> properties.put(Environment.JNDI_CLASS,
> "org.apache.openejb.client.LocalInitialContextFactory");
> entityManagerFactory = Persistence.createEntityManagerFactory(
> persistenceUnitName, properties);
>
> This way, Hibernate joins the container transactions.
Awesome. I wouldn't imagine such stuff is possible in/with OpenEJB.
Even after so long with openejb I can learn new stuff. It'd be great
if you could share the app or better yet write a doc how to work with
hibernate and openejb together. Would you mind? ;-)
Jacek
--
Jacek Laskowski
http://www.JacekLaskowski.pl