8

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

public class HitsStatsTotalDO
{
    @Id
    transient private Long targetId;

    public Key<HitsStatsTotalDO> createKey()
    {
        return new Key<HitsStatsTotalDO>(HitsStatsTotalDO.class, targetId);
    }
}

所以...我正在尝试批量获取 10 个对象,我使用HitsStatsTotalDO.createKey(). 我试图在这样的交易中获取它们:

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.

您能否详细说明多少是太多以及如何解决?我在文档中找不到确切的数字。

谢谢!

4

2 回答 2

5

问题不在于您要检索的实体数量,而在于它们位于多个实体组中。要么在事务之外进行提取,要么使用XG(跨组)事务

于 2011-11-24T03:25:14.200 回答
1

在单个事务中,您可以操作同一实体组中的实体。

在交易中可以做什么

于 2011-11-24T03:09:34.603 回答