在hibernate框架下如何保存完整的日期时间到oracle

如果我们的oracle数据库里面的字段是date类型,用逆向工程生成出来的实体类通常都有一个注解

@Temporal(TemporalType.DATE)

相应的java类型也是java.util.Date类型,我们用通常的方法直接new Date()赋值,会发现写到数据库以后只有日期,时间被清零了。

这个据说是因为“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。如果我们把一个java.sql.Date值通过PrepareStatement的setDate方法存入数据库时,java程序会对传入的java.sql.Date规范化,非规范化的部分将会被劫取。

要解决这个问题,有两种方法
1. 去掉@Temporal(TemporalType.DATE)这个注解

2. 修改字段类型为java.sql.Timestamp

    注解也改成timestamp类型

你可能感兴趣的:(在hibernate框架下如何保存完整的日期时间到oracle)