java - 不确定我是否理解 TransactionAwarePersistenceManagerFactoryProxy

标签 java spring persistence dao jdo

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

最佳答案

答案可直接访问 documentation

I realize it can help make my DAOs work with a plain JDO PersistenceManagerFactory.

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

Can I still use it to access my factory to create a transaction aware persistence manager

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

If the object managed by the factory is a singleton, does this change things? Why not just access the PersistenceManagerFactory directly?

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

关于java - 不确定我是否理解 TransactionAwarePersistenceManagerFactoryProxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636178/

相关文章:

java - 如何修复安装 maven jar 插件依赖项时出现的错误?

java - 如何等待(固定速率)ScheduledFuture 在取消时完成

spring - 如何使用 Spring MVC 在 post 方法中传递 List<String>?

java - 没有 EntityManager 与 Spring/EclipseLink 事务

database - Django 数据库连接池与 psycopg2.pool

java - 设置 hibernate JPA

java - 找不到符号方法 setAnimationListener

java - 使用 Selenium WebDriver 进行搜索可以在 google 上运行,但在 yahoo 上失败

android - 为现有的 Spring MVC 应用程序(Spring Mobile 或 Phonegap)设计移动应用程序

swift - 如何修复被阻挡的 View 过渡到增强现实 View