DBRef 方式关联

DBRef 就是在两个Collection之间定义的一个关联关系,暂不支持级联的保存功能 例子:一个Person对象有多个Book对象,一对多关系

实体Person

public class Person implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	private String id;
	private String name; 
	private String sex; 
	private String idCard; 
	private String note; 

	@DBRef // mongodb的注解,文档之间建立关联关系,可以认为是关系型数据库中的外键
	@Field("book")
	private List<Book> book;

	//省略 set()... get()...

}

实体Book

public class Book implements java.io.Serializable {
	
	@Id
	private String id;
	private String bookName; 
	private String author; 
	private String press; 
	private String isbn; 

	//省略 set()... get()...
}

保存操作

@Test
public void insert() {
	
	Person person = new Person();
	person.setName("zhangsan");
	person.setSex("男");
	person.setIdCard("110112100589911");
	person.setNote("");
	
	Book book = new Book();
	book.setBookName("MongoDB实战");
	book.setAuthor("李兴华");
	book.setPress("清华大学出版社");
	book.setIsbn("333");
	
	List<Book> books = new ArrayList<Book>();
	books.add(book);
	
	person.setBook(books);  //把books设置到person中
	
	personDao.saveBook(book); //需先保存book对象
	personDao.savePerson(person);
}