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