简单认识下@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的完整信息





发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

spring MVC 前台传数组类型,后台用list类型接收也是可以的知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。