我正在制作一个应用程序的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注释,字段对象不会被保存。 我不知道为什么会这样。
答案 0 :(得分:1)
首先请确保您已将所有必填字段(Objective
,PersonalDetails
)注明为@Document
。
第二,请为字段对象提供getter和setter。
另外请确保您已指定实际@Id
,否则春天会为您做。
顺便说一句,如果您不想使用嵌入,可以使用@DBRef
注释。这是非常好的信息:
http://maciejwalkowiak.pl/blog/2012/04/30/spring-data-mongodb-cascade-save-on-dbref-objects/