为什么在datastore.save()时不调用morphia @prePersist Annotation?

时间:2015-09-17 14:54:58

标签: mongodb morphia

以下是课程StageOrmModel.class中的注释@prePersist方法:

...
private String product;
private List<ProductOrmModel> _product;


@PrePersist
void prePersist(){
    System.out.println("I am in prePersist");
    Gson gson = new Gson();
    product = gson.toJson(_product);
    this._product = null;
}
...

我希望在将文档保存到mongodb之前将_product字段序列化为json字符串,但是当通过以下代码片段调用方法DataStore.save()时:

 datastore.save(stageOrmModel)

我发现不仅_product未被设置为null(在这种情况下应该预期未包含在已保存的文档中),而且String product未被解析,并且控制台记录System.out.println("I am in prePersist")从未打印过。

哪些我错了?

1 个答案:

答案 0 :(得分:0)

最后,我想出了这个:

当导入由IDE生成时,我导入2,3,1 而不是javax.persistence.PrePersist,我没有检查。

这是一个粗心的错误,希望这会提醒其他人坚持同样的问题。