java - 使用 Spring Data JPA 在 Mongodb 文档中进行 PrePersist 和 PreUpdate
问题描述
我在使用 MongoDB 实体时遇到问题@PrePersist
,@PreUpdate
我有一个超类,它具有像 createAt 和 updateAt 这样的元字段,如果它定义为 ,一切正常@Entity
,但它似乎不适用于@Document
. 那么我可以使用什么功能来类似地工作@PrePersist
并@PreUpdate
用于 mongo 实体人员?这是我的超类
@EntityListeners(AuditingEntityListener.class)
public class ItemDocument implements Serializable {
private static final long serialVersionUID = 5894122627332059602L;
@Id
private UUID id;
@Field("created_at")
@CreatedDate
private long created_at;
@Field("created_by")
private String created_by;
@Field("updated_at")
@LastModifiedDate
private long updated_at;
@Field("updated_by")
private String updated_by;
@PrePersist
protected void onPersist() {
this.created_at = new Date().getTime();
this.updated_at = this.created_at;
}
/**
* On update.
*/
@PreUpdate
protected void onUpdate() {
this.updated_at = new Date().getTime();
}
}
这是我的实体
@Document(collection = "test_entity")
public class TestDocument extends ItemDocument {
@Field("test_field")
private String testField;
@Field("test_field_2")
private String testField2;
}
在我的应用程序中,我已经有了@EnableJpaAuditing
注释。
已编辑:这是我的文档存储库:
public interface TestDocumentRepository extends DocumentBaseRepositoty<TestDocument> {
}
它从我们称之为 BaseRepository 的 1 个超类扩展而来:
@NoRepositoryBean
public interface DocumentBaseRepositoty<T extends ItemDocument> extends MongoRepository<T, UUID> {
}
解决方案
也许您需要使用@EnableMongoAuditing
( reference here ) 而不是EnableJpaAuditing
.
推荐阅读
- python - 如何根据 pandas 数据框中先前找到的值填写 nan 值?
- r - 如何在 R 中生成重叠的 QQ 图?
- android-studio - android studio中缺少模拟器工具窗口
- python - 更改 Conv2dTranspose 输出形状
- sequelize-typescript - 如何访问来自续集响应的_options?
- web-services - PHP SoapClient 不加载 WSDL
- c++ - 如何推回二维向量
- java - 在 Maven 项目 POM 中输入
标签未包含在生成的战争文件 WEB-INF\lib 文件夹中 - javascript - 弹出所需的警报框后显示 NaN
- r - AR模型解读