MongoDb没有保存Java POJO弹簧应用程序的一部分

时间:2013-02-26 15:09:13

标签: java spring mongodb

我正在制作一个应用程序的Java Pojo部分:

@Document
public class Resume implements ResumePlan,Serializable {

    private static final long serialVersionUID = -5332235643191283709L;

    @Id
    private String id;
    @Autowired(required=false)
    private Objective objective;
    @Autowired
    private PersonalDetails personalDetails;
    @Autowired
    private Skills skills;
    @Autowired(required=false)
    private Experience experience;
    @Autowired
    private Education education;
    @Autowired(required=false)
    private References references;
    @Autowired(required=false)
    private Publications publications;
}

我通过以下代码保存它:

mongoOperations.insert(resume);

当我在mongodb控制台中检查后端时: 以下内容已存储:

  

db.resume.find();   {“_ id”:“test@abc.com+919876543210”,“_ class”:“com.springmyresume.resume.Resume”}

它不存储其余的bean对象,如PersonalDetails等。

有人可以告诉我这里我做错了什么。

它解决了。我做了以下更改。 1)删除了@Autowired注释 2)添加了@DBRef注释 使用@Autowired注释,字段对象不会被保存。 我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

首先请确保您已将所有必填字段(ObjectivePersonalDetails)注明为@Document

第二,请为字段对象提供getter和setter。

另外请确保您已指定实际@Id,否则春天会为您做。

顺便说一句,如果您不想使用嵌入,可以使用@DBRef注释。这是非常好的信息:

http://maciejwalkowiak.pl/blog/2012/04/30/spring-data-mongodb-cascade-save-on-dbref-objects/