我在多线程中做多个工作,当我尝试从数据存储区中获取实体时出现此错误:
Object with id "com.google.appengine.api.datastore.Key:XXXXXXX(xxx)" is managed by a different Object Manager
单元测试期间发生的事情。问题是我在测试期间跟踪持久性管理器的创建,我确信我只使用
创建 一个JDOHelper.getPersistenceManagerFactory("transactions-optional").getPersistenceManager()
如果我只使用主线程执行相同的工作,则没有任何事情发生,一切都按预期工作。
我读到为了调试它,您可以调用JDOHelper.getPersistenceManager(object)
以了解哪个持久性管理器管理该对象。我从未得到过不同的地址。
此外,在获取某个时间之前调用此方法会使调用成功而没有任何错误。