不确定我是否了解TransactionAwarePersistenceManagerFactoryProxy


192

我正在尝试org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy在Spring项目中使用,但是我不确定如何使用它或它是否正是我想要的。我意识到这可以帮助我的DAO与普通的JDO一起工作PersistenceManagerFactory。另一个问题是:如果代理制作不当怎么办?我是否仍可以使用它来访问我的工厂以创建一个可识别事务的持久性管理器?如果工厂管理的对象是单例对象,这会改变情况吗?为什么不直接访问PersistenceManagerFactory?也许PersistenceManagerFactoryUtils.getPersistenceManager会更适合我的需求?可以getObject返回null吗?


193
大声笑!对不起,我看到对象名称时几乎哭了。
Eric des Courtis 2013年

133
亲爱的孩子们,这就是Java应该停止吸毒的原因。
Griwes

48
您知道您进入Java世界的时间已经很久了,因为这样的名字似乎并不那么不合理...!
布赖恩

27
伙计们 大家好 您再次犯了新手错误。Spring Framework不是Java,Java不是Spring框架。不要混淆他们。
Torben

49
关于原始问题:这是我真正欣赏的高质量拖钓。
Torben 2013年

Answers:


20

答案可直接在文档中获得

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

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

我是否仍可以使用它来访问我的工厂以创建一个可识别事务的持久性管理器

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.