Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动设置createdOn和UpdateOn_Java_Spring_Spring Data_Spring Data Mongodb - Fatal编程技术网

Java 自动设置createdOn和UpdateOn

Java 自动设置createdOn和UpdateOn,java,spring,spring-data,spring-data-mongodb,Java,Spring,Spring Data,Spring Data Mongodb,我正在玩spring数据和mongodb。我试图实现的是在创建和/或更新对象时自动设置createdOn和updatedOn日期。因此,我基本上创建了一个“BaseDocument”,其中包含createdOn和updatedOn date属性,并创建了一个AbstractMongoDbListener,以便在保存之前截取文档(onBeforeSave),然后设置这些日期。问题是,如果我不将这些日期添加到扩展BaseDocument的类的构造函数中,这些日期就不会持久化到数据库中。子类需要在其构

我正在玩spring数据和mongodb。我试图实现的是在创建和/或更新对象时自动设置createdOn和updatedOn日期。因此,我基本上创建了一个“BaseDocument”,其中包含createdOn和updatedOn date属性,并创建了一个AbstractMongoDbListener,以便在保存之前截取文档(onBeforeSave),然后设置这些日期。问题是,如果我不将这些日期添加到扩展BaseDocument的类的构造函数中,这些日期就不会持久化到数据库中。子类需要在其构造函数上有createdOn和updatedOn来持久化这些数据,这与自动创建这些日期的想法不符。实施这一目标的好策略是什么


提前谢谢

好的,通过使用onbeforecovert而不是onBeforeSave使其工作。我设置的是源对象而不是DBObject。在转换之前设置它就可以了。

在Spring Data MongoDB 1.2.0中实现了审计支持。为了使用,您需要在类路径上有joda time,并将创建和修改日期的类型设置为DateTime。所有必要步骤

  • 添加maven依赖项

乔达时间
乔达时间
2.2
  • 在Spring配置中添加对审核的支持

  • 在类中注释属性,如:
@CreatedDate
创建私有日期时间;
@最后修改日期
修改私有日期时间;

需要记住的是:只有在保存文档时才设置创建日期,而不设置id字段。

BaseDocument类是否具有适当的geter和setter?如何使用Java@Configuration类以编程方式添加审核支持?@Erik是的,在
@Configuration
类上使用
@EnableMongoAuditing