public abstract class PersistenceManagerFactoryUtils extends Object
Used internally by JdoTemplate, JdoInterceptor and
JdoTransactionManager. Can also be used directly in application code.
JdoTransactionManager,
JtaTransactionManager,
TransactionSynchronizationManager| Modifier and Type | Field and Description |
|---|---|
static int |
PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER
Order value for TransactionSynchronization objects that clean up JDO
PersistenceManagers.
|
| Constructor and Description |
|---|
PersistenceManagerFactoryUtils() |
| Modifier and Type | Method and Description |
|---|---|
static void |
applyTransactionTimeout(javax.jdo.Query query,
javax.jdo.PersistenceManagerFactory pmf,
JdoDialect jdoDialect)
Apply the current transaction timeout, if any, to the given JDO Query object.
|
static DataAccessException |
convertJdoAccessException(javax.jdo.JDOException ex)
Convert the given JDOException to an appropriate exception from the
org.springframework.dao hierarchy. |
static javax.jdo.PersistenceManager |
doGetPersistenceManager(javax.jdo.PersistenceManagerFactory pmf,
boolean allowCreate)
Obtain a JDO PersistenceManager via the given factory.
|
static void |
doReleasePersistenceManager(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
Actually release a PersistenceManager for the given factory.
|
static javax.jdo.PersistenceManager |
getPersistenceManager(javax.jdo.PersistenceManagerFactory pmf,
boolean allowCreate)
Obtain a JDO PersistenceManager via the given factory.
|
static boolean |
isPersistenceManagerTransactional(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
Return whether the given JDO PersistenceManager is transactional, that is,
bound to the current thread by Spring's transaction facilities.
|
static void |
releasePersistenceManager(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
Close the given PersistenceManager, created via the given factory,
if it is not managed externally (i.e.
|
public static final int PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER
public static javax.jdo.PersistenceManager getPersistenceManager(javax.jdo.PersistenceManagerFactory pmf,
boolean allowCreate)
throws DataAccessResourceFailureException,
IllegalStateException
true.pmf - PersistenceManagerFactory to create the PersistenceManager withallowCreate - if a non-transactional PersistenceManager should be created
when no transactional PersistenceManager can be found for the current threadDataAccessResourceFailureException - if the PersistenceManager couldn't be obtainedIllegalStateException - if no thread-bound PersistenceManager found and
"allowCreate" is falseJdoTransactionManagerpublic static javax.jdo.PersistenceManager doGetPersistenceManager(javax.jdo.PersistenceManagerFactory pmf,
boolean allowCreate)
throws javax.jdo.JDOException,
IllegalStateException
true.
Same as getPersistenceManager, but throwing the original JDOException.
pmf - PersistenceManagerFactory to create the PersistenceManager withallowCreate - if a non-transactional PersistenceManager should be created
when no transactional PersistenceManager can be found for the current threadjavax.jdo.JDOException - if the PersistenceManager couldn't be createdIllegalStateException - if no thread-bound PersistenceManager found and
"allowCreate" is falsegetPersistenceManager(javax.jdo.PersistenceManagerFactory, boolean),
JdoTransactionManagerpublic static boolean isPersistenceManagerTransactional(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
pm - the JDO PersistenceManager to checkpmf - JDO PersistenceManagerFactory that the PersistenceManager
was created with (can be null)public static void applyTransactionTimeout(javax.jdo.Query query,
javax.jdo.PersistenceManagerFactory pmf,
JdoDialect jdoDialect)
throws javax.jdo.JDOException
query - the JDO Query objectpmf - JDO PersistenceManagerFactory that the Query was created forjdoDialect - the JdoDialect to use for applying a query timeout
(must not be null)javax.jdo.JDOException - if thrown by JDO methodsJdoDialect.applyQueryTimeout(javax.jdo.Query, int)public static DataAccessException convertJdoAccessException(javax.jdo.JDOException ex)
org.springframework.dao hierarchy.
The most important cases like object not found or optimistic locking failure are covered here. For more fine-granular conversion, JdoAccessor and JdoTransactionManager support sophisticated translation of exceptions via a JdoDialect.
ex - JDOException that occuredJdoAccessor.convertJdoAccessException(javax.jdo.JDOException),
JdoTransactionManager.convertJdoAccessException(javax.jdo.JDOException),
JdoDialect.translateException(javax.jdo.JDOException)public static void releasePersistenceManager(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
pm - PersistenceManager to closepmf - PersistenceManagerFactory that the PersistenceManager was created with
(can be null)public static void doReleasePersistenceManager(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
throws javax.jdo.JDOException
releasePersistenceManager, but throwing the original JDOException.pm - PersistenceManager to closepmf - PersistenceManagerFactory that the PersistenceManager was created with
(can be null)javax.jdo.JDOException - if thrown by JDO methods