我已将旧的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中也有这个问题,我相信它是相关的。
我的问题是我在这里做错了什么,春天是停止支持还是我做错了什么?
答案 0 :(得分:4)
我遇到了同样的问题,可以解决这个问题,将dateTimeProviderRef
添加到@EnableJpaAuditing
。
Java
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()) }
}
答案 1 :(得分:2)
尝试定义您的默认时区:
spring.jackson.time-zone=UTC