2016-02-29 23 views
0

怎么了,我试着给评论列表添加新的评论,评论被映射为Post类的列表。坚持列表关系弹簧数据mongodb

这是我的代码。

Post.java

@Document 
public class Post { 

    @Id 
    private String id; 

    @DBRef 
    private List<Comment> comments; 

    public void addComment(Comment comment) { 
    if (comments == null) { 
     comments = new ArrayList<>(); 
    } 
    this.comments.add(comment); 
    } 
    // getters and setters.... 
} 

Comment.java

@Document 
public class Comment { 

    @Id 
    private String id; 
    private String comment; 
    private int rating; 

    // getters and setters.... 
} 

的Test.class

@Test 
public void savePostWithComments() { 
    Post post = postRepository.findAll().get(1); 

    Comment comment = new Comment(); 
    comment.setComment("comment"); 
    comment.setRating(5); 

    post.addComment(comment); 
    postRepository.save(post); 
} 

测试失败,此错误

org.springframework.data.mapping.model.MappingException:无法创建对具有空ID的对象的引用。

所有帮助表示赞赏!

回答

2

引用到弹簧数据MongoDB的文档

重要 映射框架不处理级联扑救。如果您更改由Person对象引用的Account对象,则必须单独保存Account对象。保存Person对象不会自动保存属性帐户中的Account对象。

添加

commentRepository.save(comment); 

之前坚持发布对象reslove问题

+0

随意接受你自己的答案。 –