用客体化方式查询2个实体

时间:2017-05-23 09:45:07

标签: java google-app-engine google-cloud-datastore objectify nosql

我有两个不同的实体:

  • 用户

    @Entity
    public class UserMW {
    
        @Id
        private Long id;
    
        private String name;
    
        private Long score;
        ...
    }
    
  • USER_CHALLENGE

    @Entity
    public class UserChallengeMW {
    
        @Id
        private Long id;
    
        @Index
        private Ref<UserMW> user;
    
        @Index
        @Load
        private Ref<ChallengeMW> challenge;
    }
    

我希望能够获得一个ChallengeMW对象并查询已完成此ChallengeMW的所有用户。到目前为止,它非常简单。我只需要通过&#34; Ref challenge&#34;来查询USER_CHALLENGE过滤。像这样:

ofy().load().type(UserChallengeMW.class).filter("challenge", challengeRef).list();

问题是,我想根据属性&#34; 得分 &#34;进入USER实体。什么是正确的方法?

1 个答案:

答案 0 :(得分:2)

不幸的是,数据存储区中没有连接。将“得分”非规范化为UserChallengeMW对象或查询所有数据并在内存中对其进行排序。