谷歌应用程序引擎-Objectify/AppEngine/Java:许多许多关系



我在带有JAva的AppEngine中使用Objectify。我想建立一个多-多关系模型,其中解析实体有额外的字段,如下

@Entity
public class Account {
    public @Id Long id;
    public String name;
}
@Entity
public class Baby {
    @Id public Long id;
    public String name;
}
@Entity
public class AccountBaby {
    public @Id Long id;
    @Index
    @ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
    public Ref<Account> account;
    @Index
    @ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
    public Ref<Baby> baby;
    public int permission;
}

如果我遵循这个模型,我不能像下面的查询那样查询给定婴儿id的帐户列表(或给定帐户id的婴儿列表)

List<AccountBaby> babies = OfyService.ofy().load().type(AccountBaby.class).filter("account=",
                Key.create(Account.class, accountId)).list();

他们是否有其他方式来查询或建模这种关系?

您需要在"account="中有一个空格。或者你可以去掉"=",这是隐含的。

您实际搜索的是一个名为"account="的属性(可以使用低级api将其保存在数据存储中)。filter()方法的javadocs中提到了这一点。

最新更新