不确定我是否理解TransawarePersistenceManagerFactoryProxy

2022-08-31 06:30:55

我正在尝试在我的Spring项目中使用,但我不确定如何使用它,或者它是否正是我正在寻找的。我意识到它可以帮助使我的DAO与普通的JDO一起工作。另一个问题是:如果代理没有正确制作,会发生什么?我是否仍可以使用它来访问我的工厂以创建事务感知持久性管理器?如果工厂管理的对象是单例,这会改变事情吗?为什么不直接访问 PersistenceManagerFactory 呢?也许更适合我的需求?可以返回空值吗?org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxyPersistenceManagerFactoryPersistenceManagerFactoryUtils.getPersistenceManagergetObject


答案 1

答案可直接在文档上找到

我意识到它可以帮助我的DAO与普通的JDO PersistenceManagerFactory一起工作。

是的。TransactionAwarePersistenceManagerFactoryProxy代理允许DAO使用普通的JDO PersistenceManagerFactory参考,同时仍然参与Spring(或J2EE服务器)的资源和事务管理。您当然可以在您的应用程序中使用它。但是,在不知道您的确切需求的情况下,我们无法进一步确认。

我还能使用它来访问我的工厂以创建事务感知持久性管理器吗?

DAO可以在JNDI PersistenceManagerFactory和本地PersistenceManagerFactory的代理之间无缝切换。

如果工厂管理的对象是单例,这会改变事情吗?为什么不直接访问 PersistenceManagerFactory 呢?

通常最好使用Spring的JdoTemplate编写基于JDO的DAO,从而提供一致数据访问异常等好处,而不是DAO层的JDOExceptions。但是,Spring的资源和事务管理(以及依赖注入)也适用于针对普通JDO API编写的DAO。


答案 2

推荐