私は次のエンティティを持っています:
class Linf {
@Id
ObjectId id;
@Reference
Denied denied;
}
特定の ID を持つ拒否されたオブジェクトを持つすべての Linfs を検索したいと考えています。これどうやってするの?このクエリはインデックスを使用しますか? できればフルスキャンは避けたい。
ありがとう。
これは私のために働く:
Denied d2 = new Denied();
d2.id = new ObjectId("52b4709f423d856472c34fa1");
List list = datastore
.createQuery(Linf.class)
.field("denied")
.equal(d2).asList();
「拒否」のインデックスがない場合は、いずれにしても完全なコレクション スキャンになりますが、次のような方法で行う必要があります。
datastore.createQuery(Linf.class).field("denied").equal(new Key<Denied>(Denied.class, id)).fetch()