問題は、さまざまなコレクションでのクエリによる検索に関するものです。
インターフェイスにはメソッドがありAdvancedDatastore
ます:
<T> Query<T> createQuery(String kind, Class<T> clazz, DBObject q);
ただし、指定された baseQuery を使用してクエリを作成するだけであり、クエリの完全なクローンが必要ですが、DBCollection フィールドが異なります。助言がありますか?
クエリを変換する私の方法は次のとおりです。
public Query<Vacancy> convertQuery(Query<T> query) {
QueryImpl<T> queryImpl = (QueryImpl<T>) query;
DBObject dbO = queryImpl.getQueryObject();
Query<T> our_query = ((AdvancedDatastore)this.getDatastore()).createQuery("AnotherCollectionName", T.class, dbO);
return our_query;
}
アップデート
リフレクションでは問題なく動作しますが、パフォーマンスのためにこの汚い方法は好きではありません。