【发布时间】:2015-12-08 13:13:05
【问题描述】:
我对 mongo 很陌生,所以这可能只是我不了解如何设置集合。我有 2 个域对象,为了简单起见,我将它们简化为基础。
Post.java
@Document
public class Post {
@Id
private BigInteger id;
private String title;
private String body;
private String teaser;
private String slug;
private Date postedOn;
private Author author;
public Post(){
}
// getters & setters
}
Author.java
@Document
public class Author {
private BigInteger id;
private String firstName;
private String lastName;
private String email;
@DBRef
private List<Post> posts;
public Author(){
}
// getters and setters
}
我有一个方法被调用来将一些数据加载到数据库中。
@PostConstruct
private void initDatabase(){
authorRepository.deleteAll();
Author dv = new Author();
dv.setFirstName("Dan");
dv.setLastName("Vega");
dv.setEmail("danvega@gmail.com");
authorRepository.save( dv );
postRepository.deleteAll();
Post post = new Post();
post.setTitle("Spring Data Rocks!");
post.setSlug("spring-data-rocks");
post.setTeaser("Post Teaser");
post.setBody("Post Body");
post.setPostedOn(new Date());
post.setAuthor(dv);
postRepository.save(post);
}
当我从控制台运行 mongo 并显示集合时,我会看到帖子和作者集合。
当我运行 db.post.find() 时,帖子包含作者对象
{ "_id" : ObjectId("5666201fd4c6bcfd2f4caa90"), "_class" : "com.therealdanvega.domain.Post", "title" : "Spring Data Rocks!", "body" : "Post Body", "teaser" : "Post Teaser", "slug" : "spring-data-rocks", "postedOn" : ISODate("2015-12-08T00:11:11.090Z"), "author" : { "_id" : ObjectId("5666201fd4c6bcfd2f4caa8f"), "firstName" : "Dan", "lastName" : "Vega", "email" : "danvega@gmail.com" } }
但是当我运行 db.author.find() 时,我看不到那里的帖子集合。
{ "_id" : ObjectId("5666201fd4c6bcfd2f4caa8f"), "_class" : "com.therealdanvega.domain.Author", "firstName" : "Dan", "lastName" : "Vega", "email" : "danvega@gmail.com" }
有人知道我错过了什么吗?
【问题讨论】:
标签: java spring mongodb spring-boot