Hello Chris,
Thanks for your email. As you will notice I posted a related question on
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3110 this
morning.
I haven't looked closely enough to comment on the query problem but I
can confirm that your assessment above is correct. JTATransaction has
and always has had a dependency on JNDI. It's only been recently
uncovered because a) we changed how/when the transaction was
instantiated and b) it turns out some folks are using JTA services
outside the container that don't bind to JNDI. If you want to use such
a service, you're exactly right - also use a JNDI service or create a
TransactionFactory/Transaction combo that doesn't need JNDI.
The strange thing is that I'm also using JNDI with my Transaction
Manager - System.setProperty("java.naming.factory.initial",
"org.apache.naming.java.javaURLContextFactory");.
And Hibernate is fetching the JTA service using the following lookup
class:
http://docs.codehaus.org/display/BTM/Hibernate#Hibernate-Transactionmanag...
Using the following Hibernate config:
<property name="transaction.manager_lookup_class">
db.BitronixTransactionManagerLookup
</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</property>
As I understood from your post on issue HHH-3110, Hibernate should not
use a lookup class anymore but create (instance) the Transaction
Manager. Am I right ? If so, to do this, I should implement a
org.hibernate.transaction.TransactionFactory for my transaction
manager ?
This is
trivial IMHO (though I haven't done it). And of course if you do this,
please share :)
Of course, if some of my code could help, I will provide it :-)
Thanks for your help and best regards,
Joël