spring-data-mongodb-1.2.0.RELEASE を使用しています。A と B の 2 つのクラスがあり、B には A への参照があり、@DBRef で注釈が付けられています。
クラスA:
@Document(collection = "a")
public class A {
@Id
public String id;
/** The TicketGrantingTicket this is associated with. */
@Field
public String name;
public A(String id, String name) {
this.id = id;
this.name = name;
}
}
クラス B:
@Document(collection = "b")
public class B {
@Id
public String id;
@Field
public String name;
@DBRef
@Indexed
public A a;
public B(String id, String name, A a) {
super();
this.id = id;
this.name = name;
this.a = a;
}
}
特定の A を参照している B のすべてのインスタンスを照会しているので:
B fromDB = mongoOperations.findOne(Query.query(Criteria.where("a.$id").is(a1.id)), B.class);
インデックスする必要があります。
B インスタンスを MongoDB に最初に挿入した後、インデックスを作成する必要があります。以下に示すように、そうではありません。
このようなインデックスを作成する方法を知っている人はいますか?
さらに、DBRef フィールド (mongo シェルで確認できる) が、 MongoDB のドキュメントで定義されている形式と一致していないように見えます。
ここで何か不足していますか?