Spring 无法将1985-04-12T23:20转换为java.util.Date

Spring 无法将1985-04-12T23:20转换为java.util.Date,spring,datetime,kotlin,spring-data-jpa,datetime-format,Spring,Datetime,Kotlin,Spring Data Jpa,Datetime Format,[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

[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)
}
正如建议的那样,我尝试在查询方法的签名中使用类似于
@DateTimeFormat(iso=DateTimeFormat.iso.DATE\u-TIME)
@DateTimeFormat(pattern=“yyyy-MM-dd HH:MM”)
的模式,但没有解决

此外,正如建议的那样,我尝试添加

  • 编译(“com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.4.0”)
    到依赖项

  • spring.jackson.serialization.write_dates_as_timestamps=false
    到application.properties

  • 没用

    更新: 我还尝试了LocalDateTime和Instant类。仍然得到相同的异常:

    QueryMethodParameterConversionException:无法将1985-04-12T23:20转换为java.time.LocalDateTime


    QueryMethodParameterConversionException:无法将1985-04-12T23:20转换为java.time.Instant

    已解决


    使用
    @DateTimeFormat(pattern=“yyyy-MM-dd'HH:MM”)
    有效。

    我建议您不要使用
    Date
    。那门课设计得很糟糕,而且早已过时。而是使用
    LocalDateTime
    Instant
    ;这两个类都来自。我刚刚尝试过,得到了以下消息:
    QueryMethodParameterConversionException:未能将1985-04-12T23:20转换为java.time.LocalDateTime
    QueryMethodParameterConversionException:无法将1985-04-12T23:20转换为java.time.Instant尝试向提交日期添加秒数。(ISO-8601默认值包括秒)。原来问题是@DateTimeFormat模式
    
    QueryMethodParameterConversionException: Failed to convert 1985-04-12T23:20 into java.util.Date!