Spring @CreatedBy和@LastModifiedDate不再使用ZoneDateTime?
我已经将一个旧的spring boot 1.5.3项目更新为spring boot 2.0.0。释放。 我有一个审计实体,有两个ZonedDateTime类型的字段,用@CreatedBy和@LastModifiedDate注释 在以前的版本中,一切正常。但是,在新的更新中,在将实体保存到存储库中时,我会得到一个错误,即Spring @CreatedBy和@LastModifiedDate不再使用ZoneDateTime?,spring,spring-boot,spring-data,spring-data-jpa,zoneddatetime,Spring,Spring Boot,Spring Data,Spring Data Jpa,Zoneddatetime,我已经将一个旧的spring boot 1.5.3项目更新为spring boot 2.0.0。释放。 我有一个审计实体,有两个ZonedDateTime类型的字段,用@CreatedBy和@LastModifiedDate注释 在以前的版本中,一切正常。但是,在新的更新中,在将实体保存到存储库中时,我会得到一个错误,即 createdDate=<null> lastModifiedDate=<null> ]! Supported types are [org.jo
createdDate=<null>
lastModifiedDate=<null>
]! Supported types are [org.joda.time.DateTime, org.joda.time.LocalDateTime, java.util.Date, java.lang.Long, long]
createdDate=
最后修改日期=
]! 支持的类型有[org.joda.time.DateTime、org.joda.time.LocalDateTime、java.util.Date、java.lang.Long、Long]
我查了一下,发现没有任何东西和ZoneDateTime有关
这里面也有这个问题,我相信是有关系的
我的问题是我做错了什么,spring停止了支持还是我做错了什么?旧答案是错误的,但我不能删除它,因为它已被接受请滚动到其他答案。我遇到了同样的问题,通过在
@EnableJpaAuditing
中添加一个dateTimeProviderRef
可以解决
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());
}
}
Kotlin
@Configuration
@EnableJpaAuditing(dateTimeProviderRef = "auditingDateTimeProvider")
class PersistenceConfig {
@Bean // Makes ZonedDateTime compatible with auditing fields
fun auditingDateTimeProvider()= DateTimeProvider { of(ZonedDateTime.now()) }
}
这对我不起作用。还有其他解决办法吗?杰克逊与JPA无关