次のような 2 つのクラスがあるとします。
public class Person {
private String personId;
private String name;
private Address address;
}
public class Order {
private String orderId;
@DbRef
private Person customer;
}
私がやりたいことは、 Order コレクションに対してクエリを実行することですが、リンクされた Person オブジェクトの特定のフィールドのみを返します。
public Order findByOrderId(String orderId) {
Query query = query(where("orderId").is(orderId));
query.fields().exclude("person.address");
return operations.findOne(query,Order.class);
}
データが返されますが、@DbRef を介してリンクされた子オブジェクトにまたがっている場合、除外引数が適用されないようです。Order オブジェクトの属性を問題なく除外できます。私が抱えている問題は、Person ドキュメントが非常に大きくなる可能性があり、Order オブジェクトを取得するときにネットワーク トラフィックを制御したい (つまり、必要なデータだけを取得する) ことです。
spring-data-mongodb のバージョン 1.0.0.M5 を使用しています
この種の操作がサポートされているかどうかは誰にもわかりませんか?
どうもありがとう
ジョー