[hibernate-dev] [OGM] Transaction type "RESOURCE_LOCAL", still JTA is required
Gunnar Morling
gunnar at hibernate.org
Tue Jan 13 13:18:15 EST 2015
Hi,
For a demo I have an OGM application which defines a persistence unit with
transaction type RESOURCE_LOCAL.
I thus assumed I wouldn't have to add a JTA implementation to the class
path, but actually I'm getting a CNFE (see [1] for the complete trace):
ClassNotFoundException: Could not load requested class :
com.arjuna.ats.jta.TransactionManager
Indeed Arjuna is what we use as TM by default. It is set by OGM's
JtaPlatform implementation which in turn is used by transactions created by
OGM's default TransactionFactory [2].
Unless I'm doing something wrong configuration-wise, I feel that requiring
a JTA implementation for a non-transactional backend such as MongoDB is
confusing and may make users ask whether OGM is doing the right thing.
Would it be feasible to to provide an "OGM local" TransactionImplementor +
TransactionFactory to be used in such cases where the store does not
support transactions (so no rollbacks etc.), but we'd "only" need a trigger
for writing out changes to the datastore?
Any thoughts?
--Gunnar
[1] https://gist.github.com/gunnarmorling/ba193caecb7d5cdbd0a4
[2]
https://github.com/hibernate/hibernate-ogm/blob/master/core/src/main/java/org/hibernate/ogm/transaction/impl/OgmTransactionFactoryInitiator.java#L42
More information about the hibernate-dev
mailing list