java - 在 Hibernate 5.1 中使用 java.time

标签 java hibernate hibernate-5.x localdate

我在我的应用程序中使用 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.1LocaleDate 的支持,异常表明存在来自 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/

相关文章:

java - 反射和多态

java - 哪个版本的 Hibernate 是独立的(不需要 JPA 实现)?

hibernate 5 和 JPA 并动态设置实体类加载器

java - 无法添加或更新子行: a foreign key constraint fails - One-To-Many relationship - Hibernate

java - 事务关闭语法与 hibernate 4 和 5 兼容

java - 如何将 Hibernate NamingStrategy 迁移到(隐式|物理)NamingStrategy?文档在哪里?

java - 将数据从 Activity 发送到 Android 中的 viewpager fragment

java - 无法从 Servlet 到 JSP 获取错误消息(验证)

java - onCompleted 方法

java - 初始 SessionFactory 创建失败 : org. hibernate.MappingException:无效配置