有没有办法将多次到数据存储区的行程合并为一次?我有这样的事情:
class User {
@PrimaryKey
private String mUsername;
}
class Horse {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key mKey;
@Persistent
private String mOwnerUsername;
}
class Cow {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key mKey;
@Persistent
private String mOwnerUsername;
}
用户可以拥有许多马匹或奶牛。现在,为了获得所有用户的马匹和奶牛,我正在三次单独访问数据存储区,并进行三次单独的查询,例如:
User user = select from Users where userid = 'abc';
List<Horse> horses = select from Horses where ownerUsername = 'abc';
List<Cow> cows = select from Cows where ownerUsername = 'abc';
有没有办法将这三者合并为一次到数据存储区?我不想制作User类的马和牛成员,因为它们可能有很多,并且不想在每次加载User时加载它们。用户也不拥有马或牛的唯一所有权,他们可以由许多不同的实体拥有。
由于
答案 0 :(得分:1)
如果您使用密钥名称,则可以将第一个查询转换为fetch by key操作,这样会更快。如果您使用的是JDO以外的框架,则可以将按键操作的多个获取分组到一个往返中。
但是,您不能将多个查询折叠为单个请求,也不能(当前)执行异步请求。