我有以下实体(不相关的字段/方法已删除)。
public class HitsStatsTotalDO
{
@Id
transient private Long targetId;
public Key<HitsStatsTotalDO> createKey()
{
return new Key<HitsStatsTotalDO>(HitsStatsTotalDO.class, targetId);
}
}
所以...我正在尝试使用
HitsStatsTotalDO.createKey()
为10个对象进行批处理获取,为此我构造了键。我正在尝试通过如下方式获取它们:final List<Key<HitsStatsTotalDO>> keys = ....
// This is being called in transaction..
Map<Key<HitsStatsTotalDO>, HitsStatsTotalDO> result = DAOBase.ofy().get(keys);
引发以下异常:
java.lang.IllegalArgumentException: operating on too many entity groups in a single transaction.
您能详细说明多少太多以及如何解决吗?我在文档中找不到确切的号码。
谢谢!
最佳答案
问题不是您要检索的实体数量,而是它们在多个实体组中的事实。可以在事务外部进行提取,也可以使用XG (Cross Group) transaction。