【发布时间】:2018-02-14 19:39:01
【问题描述】:
我正在尝试将类型为 Date 的字段映射到我的 Oracle DB 实体中,如下所示:10.06.1999 10:58:45
我尝试过使用不同的类型,java.util.Date、java.sql.Date - 它们在尝试将 db 的数据读入模型时都会抛出异常。
只有java.sql.Time 不会抛出异常。它不适合我的情况,因为 UI 只显示时间,当从 UI 保存这个值时,只会用时间而不是日期覆盖数据库中的数据,例如:10:58:45。
在实体模式类中使用(新的 Java 8)DateTime 类和模型内的格式化程序来告诉模型正确解析日期是否是一种好方法?
提前致谢。
【问题讨论】:
-
为什么将日期时间作为文本存储在数据库中?
-
如果它是数据库中的
DATE,它怎么会有时间组件?TIMESTAMP包含日期和时间,DATE仅包含日期。 -
@Kayaman 因为它是一个 oracle 数据库,我一直在问自己同样的问题,但它就是这样...... :(
-
@OleV.V.我正在使用 JPA 和 Hibernate。
-
如果您有足够新的 Hibernate,则不需要任何特殊处理即可使用新的
java.time类。该值是二进制的,但它似乎被转换为 String 作为某种形式的最后手段。但是,如果java.sql.Timestamp工作而不是java.sql.Date,您可以尝试。如果可行,那么这是一个转换问题(您可以为此准备现成的组件)。
标签: java oracle hibernate date spring-data