我有以下实体(不相关的字段/方法已删除)。

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

10-08 02:53