1

我有以下实体:

class Linf {
     @Id
     ObjectId id;
     @Reference
     Denied denied;
}

我想找到所有具有特定 id 的 Denied 对象的 Linf。我怎样才能做到这一点?这个查询会使用索引吗?如果可能的话,我想避免完全扫描。

谢谢。

4

2 回答 2

0

如果您没有关于“拒绝”的索引,无论哪种方式都将是一个完整的集合扫描,但这样的事情应该为您做:

datastore.createQuery(Linf.class).field("denied").equal(new Key<Denied>(Denied.class, id)).fetch()
于 2013-12-18T19:00:29.490 回答
0

这对我有用:

    Denied d2 = new Denied();
    d2.id = new ObjectId("52b4709f423d856472c34fa1");

    List list = datastore
            .createQuery(Linf.class)
            .field("denied")
            .equal(d2).asList();
于 2013-12-21T14:50:16.967 回答