我在我的应用程序中使用 Hibernate 5.1。现在我想将所有 java.util.date 类转换为 java.time java 8 类。我将所有源代码更改为新的 Java 8 标准。但是当我查询包含 LocalData 映射的第一个查询时,它会抛出错误:
java.lang.ClassCastException: java.sql.Date cannot be cast to java.time.LocalDate
Hibernate-java8 jar 在我的类路径中。
有人可以帮助我使用 java.time 类而不是旧的 java.util.date 吗? 我需要在 Hibernate 配置中进行一些配置吗?
最佳答案
我认为问题不在于 Hibernate 5.1
对 LocaleDate
的支持,异常表明存在来自 的
到 cast Exception
java.sql.Datejava.time.LocaleDate
。
如果您检查 Hibernate 5.1
User Guide你可以看到Hibernate为java.time.LocaleDate
提供了一个替换类型,即LocalDateType
类。
因此,您应该在实体中使用 org.hibernate.type.LocalDateType
,而不是使用 java.time.LocaleDate
。
关于java - 在 Hibernate 5.1 中使用 java.time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784299/