加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JDO:PersistenceManager是单例吗?

发布时间:2020-12-15 08:36:01 所属栏目:Java 来源:网络整理
导读:只是基础知识:我使用DataNucleus支持嵌入式DB4O数据库. 如果我做这个简单的测试: PersistenceManager pm1 = persistenceManagerFactory.getPersistenceManager(); PersistenceManager pm2 = persistenceManagerFactory.getPersistenceManager(); pm1.makeP
只是基础知识:我使用DataNucleus支持嵌入式DB4O数据库.

如果我做这个简单的测试:

PersistenceManager pm1 = persistenceManagerFactory.getPersistenceManager();
    PersistenceManager pm2 = persistenceManagerFactory.getPersistenceManager();

    pm1.makePersistent(t1);
    pm2.makePersistent(t2);

我得到一个文件锁定异常:

com.db4o.ext.DatabaseFileLockedException: C:&;path>primary_datastore.data

这告诉我我不知道PersistenceManager应该如何工作.我想只要我需要一个PersistenceManager来查询或保存数据,我就会调用PersistenceManagerFactory,我会得到线程安全的东西.

>我是否需要制作PersistenceManager
整个单身人士
应用?
>怎么做多个
线程,执行查询和
更新在JDO / DataNucleus中工作?

解决方法

我是否需要在整个应用程序中使PersistenceManager成为单例?

这取决于你的应用程序.如果您开发桌面应用程序,则可能只需要一个持久性管理器.此持久性管理器代表桌面应用程序的数据库状态.
但是对于其他情况,情况并非如此.例如,在Web应用程序中,您希望将请求或会话彼此隔离.因此,您使用多个PersistenceManager.例如,每个请求一个PersistenceManager.每个PersistenceManager保存当前请求的状态和事务.

因此,PersistenceManager实例表示单元工作/事务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读