9

我已将旧的 spring boot 1.5.3 项目更新为 spring boot 2.0.0。发布。我有一个审计实体,它有两个 ZonedDateTime 类型的字段,用@CreatedBy 和@LastModifiedDate 注释。

在以前的版本中,一切正常。但是,随着新的更新,在存储库中保存实体后,我得到一个错误,即

 createdDate=<null>
 lastModifiedDate=<null>
 ]! Supported types are [org.joda.time.DateTime, org.joda.time.LocalDateTime, java.util.Date, java.lang.Long, long]

我检查了AnnotationAuditingMetaData,发现与 ZonedDateTime 相关的注释。

https://jira.spring.io/browse/DATAJPA-1242中也有这个问题,我相信它是相关的。

我的问题是我在这里做错了什么,是弹簧停止了支持还是我做错了什么?

4

2 回答 2

25

我有同样的问题,可以通过添加dateTimeProviderRef@EnableJpaAuditing.

爪哇

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.auditing.DateTimeProvider;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import java.time.ZonedDateTime;
import java.util.Optional;

@Configuration
@EnableJpaAuditing(dateTimeProviderRef = "auditingDateTimeProvider")
public class PersistenceConfig {

    @Bean // Makes ZonedDateTime compatible with auditing fields
    public DateTimeProvider auditingDateTimeProvider() {
        return () -> Optional.of(ZonedDateTime.now());
    }

}

科特林

@Configuration
@EnableJpaAuditing(dateTimeProviderRef = "auditingDateTimeProvider")
class PersistenceConfig {

    @Bean // Makes ZonedDateTime compatible with auditing fields
    fun auditingDateTimeProvider()= DateTimeProvider { of(ZonedDateTime.now()) }

}
于 2019-09-02T13:22:23.967 回答
-1

旧答案是错误的,但我无法删除它,因为它已被接受。请滚动到其他答案。

于 2018-03-08T10:22:50.880 回答