alo*_*loo 1 java google-app-engine persistence jdo google-cloud-datastore
我遇到了"无法在单个事务中对多个实体组进行操作".使用APPENGINE FOR JAVA w/JDO时出现问题,代码如下:
PersistenceManager pm = PMF.get().getPersistenceManager();
查询q = pm.newQuery("SELECT this FROM"+ TypeA.class.getName()+"WHERE userId == userIdParam"); q.declareParameters("String userIdParam"); 列表poos =(列表)q.execute(userIdParam);
for(TypeA a:allTypeAs){a.setSomeField(someValue); } pm.close(); }
似乎问题是我不能同时在多个实体上操作b/c它们在事务中不在同一个实体组中.虽然看起来我不在事务中,但是appengine会生成一个,因为我在jdoconfig.xml中有以下设置:
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
Run Code Online (Sandbox Code Playgroud)
精细.到目前为止,我想我明白了.
但是 - 如果我在上面的代码中用TypeB替换TypeA - 我没有得到错误.我不相信类型a和类型b之间有任何不同 - 它们都具有相同的键结构.他们确实有不同的领域,但这不重要,对吧?
我的问题是 - TypeA和TypeB之间可能有什么不同,他们给出了这种不同的行为?因此,你从根本上误解了这种行为甚至可能存在......
谢谢.
归档时间: |
|
查看次数: |
852 次 |
最近记录: |