Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Micronaut数据-保存ZonedDateTime字段时出错[无法将类型[class java.time.ZonedDateTime]转换为目标类型:class java.util.Date]_Kotlin_Micronaut_Micronaut Data - Fatal编程技术网

Kotlin Micronaut数据-保存ZonedDateTime字段时出错[无法将类型[class java.time.ZonedDateTime]转换为目标类型:class java.util.Date]

Kotlin Micronaut数据-保存ZonedDateTime字段时出错[无法将类型[class java.time.ZonedDateTime]转换为目标类型:class java.util.Date],kotlin,micronaut,micronaut-data,Kotlin,Micronaut,Micronaut Data,尝试使用Micronaut数据模块进行db持久化,但在尝试使用ZonedDateTime字段保存实体时出现以下错误 io.micronaut.data.exceptions.DataAccessException:无法将类型[class java.time.ZonedDateTime]转换为目标类型:class java.util.Date。考虑定义一个类型化的bean来处理这种情况。 在io.micronaut.data.runtime.mapper.QueryStatement.lambda

尝试使用Micronaut数据模块进行db持久化,但在尝试使用ZonedDateTime字段保存实体时出现以下错误

io.micronaut.data.exceptions.DataAccessException:无法将类型[class java.time.ZonedDateTime]转换为目标类型:class java.util.Date。考虑定义一个类型化的bean来处理这种情况。
在io.micronaut.data.runtime.mapper.QueryStatement.lambda$convertRequired$0(QueryStatement.java:204)
位于java.base/java.util.Optional.orelsetrow(Optional.java:408)
在io.micronaut.data.runtime.mapper.QueryStatement.convertRequired(QueryStatement.java:203)中
我假设Micronaut会有处理Java8日期类型的默认实现。不知道为什么没有

我还在下面注册了一个类型转换器(其中TypeUtils.toUtilDate是进行实际转换的内部类)。我看到Micronaut获取了这个类(因此如果我添加一个,它会打印一个日志stmt)

@工厂
类类型转换器{
@独生子女
fun zdatetimeToUtilDate():类型转换器{
返回类型转换器{datetime,targetType,context->Optional.of(TypeUtils.toUtilDate(datetime))}
}
}

即使这样,我仍然得到上述错误。你知道为什么会这样吗?

你能在一份问题报告中提供一个例子吗@Graemorcher创建了这个裸体回购协议来模拟错误。在创建它的过程中,观察到在类型转换器就位的情况下,它正在转换和存储实体。但如果没有类型转换器,则不是(可能是预期的)。将在我们的主应用程序中检查为什么typeconverter不工作,然后如果需要,将创建一个问题。@Graemorcher在完成干净的编译后,typeconverter方法正在工作。然而,我认为micronaut应该具有开箱即用的支持,而不需要为所有Java8日期类型使用另一个类型转换器。在这里创建了一个功能请求[你能在问题报告中提供一个例子吗@Graemorcher创建了这个裸体repo来模拟错误。在创建它的过程中,观察到有了类型转换器,它正在转换和存储实体。但是没有类型转换器,它就不会(可能是预期的)。将在我们的主应用程序中检查为什么typeconverter不工作,然后如果需要,将创建一个问题。@Graemorcher在完成干净编译后,typeconverter方法正在工作。但是,我认为micronaut应该具有开箱即用的支持,而不需要为所有java 8日期类型创建另一个类型转换器。在此处创建了一个功能请求[
@Factory
class TypeConverters {

  @Singleton
  fun zdatetimeToUtilDate(): TypeConverter<ZonedDateTime, Date> {
    return TypeConverter { datetime, targetType, context -> Optional.of(TypeUtils.toUtilDate(datetime)) }
  }

}