我有以下课程" Ground":
@Entity("grounds")
public class Ground {
@Id
public String id;
public String name;
public String password;
@Reference
List<User> members = new ArrayList<User>();
我创建了一个新的Ground并添加了一个成员@Reference
。当我试图通过成员@Id
找到地面时,我只得到一个空查询。这是我的代码:
Datastore ds = Database.getDatastore();
User member = ds.get(User.class, new ObjectId(id));
Query<Ground> query = ds.createQuery(Ground.class).disableValidation()
.filter("members", member);
答案 0 :(得分:0)
User
:您是否也将@Id
定义为String
?因为在您的查询中,您使用的是ObjectId
。我认为您需要使用密钥查询引用,例如
Query<Ground> query = ds.createQuery(Ground.class).disableValidation()
.field("members").hasThisElement(ds.getKey(member));