|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.orm.jdo.PersistenceManagerFactoryUtils
public abstract class PersistenceManagerFactoryUtils
Helper class featuring methods for JDO PersistenceManager handling, allowing for reuse of PersistenceManager instances within transactions. Also provides support for exception translation.
Used by JdoTemplate, JdoInterceptor, and JdoTransactionManager. Can also be used directly in application code, e.g. in combination with JdoInterceptor.
JdoTemplate
,
JdoInterceptor
,
JdoTransactionManager
Field Summary | |
---|---|
static int |
PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER
Order value for TransactionSynchronization objects that clean up JDO PersistenceManagers. |
Constructor Summary | |
---|---|
PersistenceManagerFactoryUtils()
|
Method Summary | |
---|---|
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 void |
closePersistenceManagerIfNecessary(javax.jdo.PersistenceManager pm,
javax.jdo.PersistenceManagerFactory pmf)
Deprecated. in favor of releasePersistenceManager |
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 SQLExceptionTranslator |
newJdbcExceptionTranslator(javax.jdo.PersistenceManagerFactory pmf)
Create an appropriate SQLExceptionTranslator for the given PersistenceManagerFactory. |
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. not bound to the thread). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER
DataSourceUtils.CONNECTION_SYNCHRONIZATION_ORDER
,
Constant Field ValuesConstructor Detail |
---|
public PersistenceManagerFactoryUtils()
Method Detail |
---|
public static SQLExceptionTranslator newJdbcExceptionTranslator(javax.jdo.PersistenceManagerFactory pmf)
If a DataSource is found, creates a SQLErrorCodeSQLExceptionTranslator for the DataSource; else, falls back to a SQLStateSQLExceptionTranslator.
pmf
- the PersistenceManagerFactory to create the translator for
null
)PersistenceManagerFactory.getConnectionFactory()
,
SQLErrorCodeSQLExceptionTranslator
,
SQLStateSQLExceptionTranslator
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 thread
DataAccessResourceFailureException
- if the PersistenceManager couldn't be obtained
IllegalStateException
- if no thread-bound PersistenceManager found and
"allowCreate" is false
JdoTransactionManager
public 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 thread
javax.jdo.JDOException
- if the PersistenceManager couldn't be created
IllegalStateException
- if no thread-bound PersistenceManager found and
"allowCreate" is false
getPersistenceManager(javax.jdo.PersistenceManagerFactory, boolean)
,
JdoTransactionManager
public 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
JdoDialect.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 occured
JdoAccessor.convertJdoAccessException(javax.jdo.JDOException)
,
JdoTransactionManager.convertJdoAccessException(javax.jdo.JDOException)
,
JdoDialect.translateException(javax.jdo.JDOException)
public static void closePersistenceManagerIfNecessary(javax.jdo.PersistenceManager pm, javax.jdo.PersistenceManagerFactory pmf)
releasePersistenceManager(javax.jdo.PersistenceManager, javax.jdo.PersistenceManagerFactory)
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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |