简单认识下@DBRef这个注解的作用,和使用例子。
//存mongo数据库的model
@Document(collection = "abc")
public class Abc {
@Id
private String id;
@DBRef
private List<B> Bs;
@DBRef
private User creator;
}
//Abc数据结构如下:
{
"_id" : ObjectId("5539e10914ea279b6f96d84b"),
"Bs" : [{
"$ref" : "Cs",
"$id" : ObjectId("5524e3f677c8175d2c37c624")
}, {
"$ref" : "Cs",
"$id" : ObjectId("545a0d0ea52e28109b0ab3e9")
}, {
"$ref" : "Cs",
"$id" : ObjectId("5548b078b8480d45f4ad2996")
}],
"creator" : {
"$ref" : "users",
"$id" : ObjectId("5270a8c52f2e24ff4094285a")
}
}
就是在model Abc 里面联表查询数据库里面其他表的信息。
也就是在获得Abc这个model数据的时候,他会自动的根据Abc表里面的数据去查另外相关联的表。
就下面而言;
获得Abc实例abc的时候,会根据 abc.Bs的值,去查表Cs (这个是表名,不是对应model的Class)获得对应类型的model数据实例,填充到abc中,完善abc的Bs属性--字段值。
同理也会去查users表,获得creator的完整信息