TransactionAwarePersistenceManagerFactoryProxy
and
SpringPersistenceManagerProxyBean
)@Deprecated public abstract class JdoAccessor extends Object implements InitializingBean
Note: With JDO, modifications to persistent objects are just possible within a transaction (in contrast to Hibernate). Therefore, eager flushing will just get applied when in a transaction. Furthermore, there is no explicit notion of flushing never, as this would not imply a performance gain due to JDO's field interception mechanism (which doesn't involve the overhead of snapshot comparisons).
Eager flushing is just available for specific JDO providers. You need to a corresponding JdoDialect to make eager flushing work.
Not intended to be used directly. See JdoTemplate and JdoInterceptor.
JdoTemplate
,
JdoInterceptor
,
setFlushEager(boolean)
Modifier and Type | Field and Description |
---|---|
protected Log |
logger
Deprecated.
Logger available to subclasses
|
Constructor and Description |
---|
JdoAccessor()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Deprecated.
Eagerly initialize the JDO dialect, creating a default one
for the specified PersistenceManagerFactory if none set.
|
DataAccessException |
convertJdoAccessException(javax.jdo.JDOException ex)
Deprecated.
Convert the given JDOException to an appropriate exception from the
org.springframework.dao hierarchy. |
protected void |
flushIfNecessary(javax.jdo.PersistenceManager pm,
boolean existingTransaction)
Deprecated.
Flush the given JDO persistence manager if necessary.
|
JdoDialect |
getJdoDialect()
Deprecated.
Return the JDO dialect to use for this accessor.
|
javax.jdo.PersistenceManagerFactory |
getPersistenceManagerFactory()
Deprecated.
Return the JDO PersistenceManagerFactory that should be used to create
PersistenceManagers.
|
boolean |
isFlushEager()
Deprecated.
Return if this accessor should flush changes to the database eagerly.
|
void |
setFlushEager(boolean flushEager)
Deprecated.
Set if this accessor should flush changes to the database eagerly.
|
void |
setJdoDialect(JdoDialect jdoDialect)
Deprecated.
Set the JDO dialect to use for this accessor.
|
void |
setPersistenceManagerFactory(javax.jdo.PersistenceManagerFactory pmf)
Deprecated.
Set the JDO PersistenceManagerFactory that should be used to create
PersistenceManagers.
|
protected final Log logger
public void setPersistenceManagerFactory(javax.jdo.PersistenceManagerFactory pmf)
public javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory()
public void setJdoDialect(JdoDialect jdoDialect)
The dialect object can be used to retrieve the underlying JDBC connection and to eagerly flush changes to the database.
Default is a DefaultJdoDialect based on the PersistenceManagerFactory's underlying DataSource, if any.
public JdoDialect getJdoDialect()
Creates a default one for the specified PersistenceManagerFactory if none set.
public void setFlushEager(boolean flushEager)
Eager flushing leads to immediate synchronization with the database, even if in a transaction. This causes inconsistencies to show up and throw a respective exception immediately, and JDBC access code that participates in the same transaction will see the changes as the database is already aware of them then. But the drawbacks are:
public boolean isFlushEager()
public void afterPropertiesSet()
afterPropertiesSet
in interface InitializingBean
protected void flushIfNecessary(javax.jdo.PersistenceManager pm, boolean existingTransaction) throws javax.jdo.JDOException
pm
- the current JDO PersistenceManagerexistingTransaction
- if executing within an existing transaction
(within an existing JDO PersistenceManager that won't be closed immediately)javax.jdo.JDOException
- in case of JDO flushing errorspublic DataAccessException convertJdoAccessException(javax.jdo.JDOException ex)
org.springframework.dao
hierarchy.
Default implementation delegates to the JdoDialect. May be overridden in subclasses.
ex
- JDOException that occuredJdoDialect.translateException(javax.jdo.JDOException)