0

我正在制作的应用程序中有以下 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 注释字段对象没有得到保存。我不知道为什么这是这种行为。

4

1 回答 1

1

首先,请确保您已将所有必要字段的类 ( Objective, PersonalDetails) 注释为@Document.

其次,请为字段对象提供 getter 和 setter。

另请确保您已指定实际@Id,否则 spring 会为您完成。

顺便说一句,如果你不想使用嵌入,你可以使用@DBRef注释。这里有很好的信息:

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

于 2013-02-26T15:41:31.893 回答