我有以下实体(不相关的字段/方法已删除)。
public class HitsStatsTotalDO
{
@Id
transient private Long targetId;
public Key<HitsStatsTotalDO> createKey()
{
return new Key<HitsStatsTotalDO>(HitsStatsTotalDO.class, targetId);
}
}
所以...我正在尝试批量获取 10 个对象,我使用 HitsStatsTotalDO.createKey()
为其构造 key 。我正试图在这样的交易中获取它们:
final List<Key<HitsStatsTotalDO>> keys = ....
// This is being called in transaction..
Map<Key<HitsStatsTotalDO>, HitsStatsTotalDO> result = DAOBase.ofy().get(keys);
抛出以下异常:
java.lang.IllegalArgumentException:在单个事务中对太多实体组进行操作。
您能否详细说明多少是太多以及如何解决?我在文档中找不到确切的数字。
谢谢!
最佳答案
问题不在于您要检索的实体数量,而在于它们位于多个实体组中。要么在事务外进行提取,要么使用 XG (Cross Group) transaction .
关于google-app-engine - "too many"在与 Google 的数据存储(高复制)的单个事务中有多少个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251594/