在 Hibernate 5.1 中使用 java.time
Use java.time in Hibernate 5.1
我在我的应用程序中使用 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
的支持,异常表明从 java.sql.Date
到 java.time.LocaleDate
有一个 cast Exception
。
如果勾选 Hibernate 5.1
User Guide you can see that Hibernate provides a replamcement type for the java.time.LocaleDate
which is LocalDateType
class.
因此,您应该在实体中使用 org.hibernate.type.LocalDateType
,而不是使用 java.time.LocaleDate
。
我在我的应用程序中使用 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
的支持,异常表明从 java.sql.Date
到 java.time.LocaleDate
有一个 cast Exception
。
如果勾选 Hibernate 5.1
User Guide you can see that Hibernate provides a replamcement type for the java.time.LocaleDate
which is LocalDateType
class.
因此,您应该在实体中使用 org.hibernate.type.LocalDateType
,而不是使用 java.time.LocaleDate
。