У меня проблема с использованием @PrePersist
и @PreUpdate
в Entity of MongoDB
У меня есть суперкласс, который имеет мета-поле, как createAt и updateAt, все работает нормально, если оно определено как @Entity
, но, похоже, не работает с @Document
.
Так какую функцию я могу использовать, чтобы работать аналогично @PrePersist
и @PreUpdate
для ребят из монго-сущностей?
Это мой суперкласс
@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> {
}
это расширение от 1 суперкласса, который мы назвали BaseRepository:
@NoRepositoryBean
public interface DocumentBaseRepositoty<T extends ItemDocument> extends MongoRepository<T, UUID> {
}