jpa oracle date,JPA 2.0 Oracle DATE具有空时

对于这类问题,通常有助于提供JDBC驱动程序的版本和您正在使用的方言.

无论如何,我的理解是你实际上想要以下映射(对于DATE和TIME):

@Column(name = "READING_DATE")

@Temporal(TemporalType.TIMESTAMP)

private Date readingDate;

而你遇到的问题在某种程度上与Oracle在版本9.2中引入的疯狂有关,请参见What is going on with DATE and TIMESTAMP?(简而言之,他们引入了TIMESTAMP列并更改了DATE SQL类型的映射,请阅读常见问题解答).有几种方法可以解决它(我当然假设您正在使用TemporalType.TIMESTAMP映射):

使用TIMESTAMP列类型(我不是指TemporalType.TIMESTAMP,我的意思是DB侧的列类型).但如果您不需要纳秒精度,这不是最佳选择.

或者将oracle.jdbc.V8Compatible = true兼容模式设置为系统属性或连接属性:

true

是的,您可以像这样设置任意连接属性.从Hibernate文档:

07001

Arbitrary connection properties can be given by prepending “hibernate.connection” to the connection property name. For example, you can specify a charSet connection property using hibernate.connection.charSet.

或者使用Oracle JDBC 11.1驱动程序(它们通过还原更改来“修复”问题).这是IMO的理想解决方案(不推荐使用V8兼容的东西).

相关问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值