我正在尝试org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
在我的 Spring 项目中使用它,但我不确定如何使用它或者它是否正是我想要的。我意识到它可以帮助我的 DAO 与普通的 JDO 一起工作PersistenceManagerFactory
。另一个问题是:如果代理没有正确制作会发生什么?我仍然可以使用它来访问我的工厂以创建事务感知持久性管理器吗?如果工厂管理的对象是单例,这会改变吗?为什么不直接访问 PersistenceManagerFactory 呢?也许PersistenceManagerFactoryUtils.getPersistenceManager
会更适合我的需要?可以getObject
返回null吗?
问问题
28109 次
1 回答
20
答案可直接在文档中获得
我意识到它可以帮助我的 DAO 与普通的 JDO PersistenceManagerFactory 一起工作。
是的。TransactionAwarePersistenceManagerFactoryProxy 代理允许 DAO 使用普通的 JDO PersistenceManagerFactory 引用,同时仍参与 Spring(或 J2EE 服务器)的资源和事务管理。你肯定可以在你的应用程序中使用它。但在不了解您的确切需求的情况下,我们无法进一步确认。
我仍然可以使用它来访问我的工厂以创建事务感知持久性管理器吗
DAO 可以在 JNDI PersistenceManagerFactory 和本地 PersistenceManagerFactory 的代理之间无缝切换。
如果工厂管理的对象是单例,这会改变吗?为什么不直接访问 PersistenceManagerFactory 呢?
通常最好使用 Spring 的 JdoTemplate 编写基于 JDO 的 DAO,这样可以提供诸如一致的数据访问异常而不是 DAO 层的 JDOExceptions 之类的好处。但是,Spring 的资源和事务管理(以及依赖注入)也适用于针对普通 JDO API 编写的 DAO。
于 2013-06-29T04:54:55.823 回答