App Engine无法在单个事务中对多个实体组进行操作

时间:2012-05-04 06:46:31

标签: java google-app-engine

当我尝试在一个事务中更新多个对象时,我收到以下异常:

java.lang.IllegalArgumentException:无法在单个transaction.found中对多个实体组进行操作。   类型:“消息”   id:51 }  和元素{   类型:“消息”   id:52 }

这很奇怪,因为事务中的所有对象都共享一个共同的祖先。

当我打印列表时,我会收到以下内容:

[ 网站ID:2消息ID:50消息创建者:north@gmail.com创建于:2012年5月4日星期五05:38:32 UTC 2012, 网站ID:2消息ID:51消息创建者:north@gmail.com创建于:2012年5月4日星期五05:38:32 UTC 2012, 网站ID:2消息ID:52消息创建者:north@gmail.com创建日期:星期五5月4日05:38:32 UTC 2012 ]

正如您所看到的,所有三条消息记录都查找到ID为2的同一父站点。根据GAE documentation,这意味着消息在同一个实体组中,所以看起来我不应该得到这个例外。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试更新一个项目时,我遇到了同样的错误。解决方法 - 我将其移至不同的交易。认为不可能在单个事务中更新多一个项目。