public class SpringPersistenceManagerProxyBean extends Object implements org.springframework.beans.factory.FactoryBean<javax.jdo.PersistenceManager>, org.springframework.beans.factory.InitializingBean
PersistenceManager
interface,
delegating to the current thread-bound PersistenceManager (the Spring-managed
transactional PersistenceManager or the single OpenPersistenceManagerInView
PersistenceManager, if any) on each invocation. This class makes such a
Spring-style PersistenceManager proxy available for bean references.
The main advantage of this proxy is that it allows DAOs to work with a
plain JDO PersistenceManager reference in JDO 3.0 style
(see PersistenceManagerFactory.getPersistenceManagerProxy()
),
while still participating in Spring's resource and transaction management.
The behavior of this proxy matches the behavior that the JDO 3.0 spec
defines for a PersistenceManager proxy. Hence, DAOs could seamlessly switch
between StandardPersistenceManagerProxyBean
and this Spring-style proxy,
receiving the reference through Dependency Injection. This will work without
any Spring API dependencies in the DAO code!
StandardPersistenceManagerProxyBean
,
PersistenceManagerFactory.getPersistenceManagerProxy()
,
PersistenceManagerFactoryUtils.getPersistenceManager(javax.jdo.PersistenceManagerFactory, boolean)
,
PersistenceManagerFactoryUtils.releasePersistenceManager(javax.jdo.PersistenceManager, javax.jdo.PersistenceManagerFactory)
Constructor and Description |
---|
SpringPersistenceManagerProxyBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected JdoDialect |
getJdoDialect()
Return the JDO dialect to use for this proxy.
|
javax.jdo.PersistenceManager |
getObject() |
Class<? extends javax.jdo.PersistenceManager> |
getObjectType() |
protected javax.jdo.PersistenceManagerFactory |
getPersistenceManagerFactory()
Return the target PersistenceManagerFactory for this proxy.
|
protected Class<? extends javax.jdo.PersistenceManager> |
getPersistenceManagerInterface()
Return the PersistenceManager interface to expose.
|
protected boolean |
isAllowCreate()
Return whether the PersistenceManagerFactory proxy is allowed to create
a non-transactional PersistenceManager when no transactional
PersistenceManager can be found for the current thread.
|
boolean |
isSingleton() |
void |
setAllowCreate(boolean allowCreate)
Set whether the PersistenceManagerFactory proxy is allowed to create
a non-transactional PersistenceManager when no transactional
PersistenceManager can be found for the current thread.
|
void |
setJdoDialect(JdoDialect jdoDialect)
Set the JDO dialect to use for this proxy.
|
void |
setPersistenceManagerFactory(javax.jdo.PersistenceManagerFactory persistenceManagerFactory)
Set the target PersistenceManagerFactory for this proxy.
|
void |
setPersistenceManagerInterface(Class<? extends javax.jdo.PersistenceManager> persistenceManagerInterface)
Specify the PersistenceManager interface to expose,
possibly including vendor extensions.
|
public void setPersistenceManagerFactory(javax.jdo.PersistenceManagerFactory persistenceManagerFactory)
protected javax.jdo.PersistenceManagerFactory getPersistenceManagerFactory()
public void setJdoDialect(JdoDialect jdoDialect)
Default is a DefaultJdoDialect based on the PersistenceManagerFactory's underlying DataSource, if any.
protected JdoDialect getJdoDialect()
public void setPersistenceManagerInterface(Class<? extends javax.jdo.PersistenceManager> persistenceManagerInterface)
Default is the standard javax.jdo.PersistenceManager
interface.
protected Class<? extends javax.jdo.PersistenceManager> getPersistenceManagerInterface()
public void setAllowCreate(boolean allowCreate)
Default is "true". Can be turned off to enforce access to
transactional PersistenceManagers, which safely allows for DAOs
written to get a PersistenceManager without explicit closing
(i.e. a PersistenceManagerFactory.getPersistenceManager()
call without corresponding PersistenceManager.close()
call).
protected boolean isAllowCreate()
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public javax.jdo.PersistenceManager getObject()
getObject
in interface org.springframework.beans.factory.FactoryBean<javax.jdo.PersistenceManager>
public Class<? extends javax.jdo.PersistenceManager> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<javax.jdo.PersistenceManager>
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<javax.jdo.PersistenceManager>