只是基础知识:我正在使用由嵌入式DB4O数据库支持的DataNucleus。

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

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

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

我收到文件锁定异常:
com.db4o.ext.DatabaseFileLockedException: C:\<path>\primary_datastore.data

这告诉我我不知道PersistenceManager应该如何工作。我以为只要需要PersistenceManagerFactory来查询或持久存储数据,我都只是打电话给PersistenceManager,这样我就可以得到线程安全的东西。
  • 我需要做PersistenceManager吗
    我整个人的单身
    应用?
  • 如何做多个
    线程,执行查询和
    更新在JDO / DataNucleus中的工作?
  • 最佳答案

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

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

    因此,PersistenceManager-instance表示单元工作/事务。

    09-26 20:43