我正在使用 spring-data-mongodb-1.2.0.RELEASE。我有两个类 A 和 B,其中 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 shell 所见)与 MongoDB 文档中定义的格式不匹配。
我在这里错过了什么吗?