spring - 无法将 1985-04-12T23:20 转换为 java.util.Date
问题描述
[Spring + Kotlin]
这些是依赖项:
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-data-rest")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-web-services")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
这是实体:
@Entity
class MatchEntity(
@Id @GeneratedValue val id: Long,
@NotBlank val matchDateTime: Date,
@NotBlank @ManyToOne @JoinColumn val tournamentInvolved: TournamentEntity
)
每当我尝试运行以下查询时:
interface MatchRepository : JpaRepository<MatchEntity, Long> {
fun findMatchesByMatchDateTimeIsAfter(matchDateTime: Date)
}
使用这样的测试字符串1985-04-12T23:20
,我收到错误:
QueryMethodParameterConversionException: Failed to convert 1985-04-12T23:20 into java.util.Date!
按照这里的建议,我尝试在查询方法的签名中使用类似@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
和 的模式,但没有解决。@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
另外,正如这里所建议的,我尝试添加
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0")
到依赖项spring.jackson.serialization.write_dates_as_timestamps=false
到 application.properties。
没用。
更新: 我还尝试了 LocalDateTime 和 Instant 类。仍然得到相同的例外:
QueryMethodParameterConversionException: Failed to convert 1985-04-12T23:20 into java.time.LocalDateTime!
QueryMethodParameterConversionException: Failed to convert 1985-04-12T23:20 into java.time.Instant!
解决方案
解决了
使用@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm")
工作。
推荐阅读
- node.js - 如何为节点控制器编写 Jest 单元测试
- eclipse - sbt eclipse 错误评估任务 scalaoptions 错误
- c# - 无法使用自动化 selenium c# 访问谷歌
- r - 在 R 中安装 dagitty 和 ggdag 包时出错
- c# - 从 Windows Service .net 应用程序发送 Win10 通知
- python - 使用来自另一个数据帧的信息制作新的数据帧
- swift - 无法通过通知发送 json 数据
- ios - 在视频上拉伸的贴纸和文字
- javascript - 如何从 JSON.parse(xhr.response) 获取内容
- html - XAMPP 不显示 MP4 文件