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 コンソールでバックエンドを確認すると、以下が保存されます。

デシベル。再開。検索(); { "_id" : "test@abc.com+919876543210", "_class" : "com.springmyresume.resume.Resume" }

PersonalDetails などの残りの Bean オブジェクトは保存されません。

ここで私が間違っていることを誰かに教えてもらえますか。

解決しました。以下の変更を行いました。1) @Autowired アノテーションを削除 2) @DBRef アノテーションを追加 @Autowired アノテーションを使用すると、フィールド オブジェクトが保存されませんでした。なぜこのような動作になるのかわかりません。

4

1 に答える 1

1

まず、必要なすべてのフィールドのクラス(ObjectivePersonalDetails)に。の注釈が付いていることを確認してください@Document

次に、fieldsオブジェクトのゲッターとセッターを提供してください。

また、実際@Idに指定していることを確認してください。指定していない場合は、春になります。

ところで、埋め込みを使用したくない場合は、@DBRef注釈を使用できます。ここにかなり良い情報があります:

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

于 2013-02-26T15:41:31.893 に答える