JPA ORACLE DATE类型数据丢失时分秒解决方法

本文介绍了在使用Oracle JDBC驱动时,由于驱动版本差异导致DATE类型转换问题的解决方案。通过创建NativeQuery并自定义TimestampType解决查询中的日期格式问题,确保了与不同版本驱动的兼容性。

原因是Oracle jdbc驱动版本的导致,需要更换驱动版本:
ojdbc14.jar:DATE > java.sql.Date
ojdbc6.jar:DATE > java.sql.Timestamp

不更新驱动的方法:

String queryStr = "SELECT T.MDATE FROM MTABLE T";
Query query = em.createNativeQuery(queryStr);
SQLQuery sqlQuery = (SQLQuery) ((HibernateQuery) query).getHibernateQuery();
// 项目中找不到Hibernate.TIMESTAMP,可能是版本不同
// sqlQuery.addScalar("MDATE", Hibernate.TIMESTAMP);
// 改用org.hibernate.type.TimestampType类,实测可行
sqlQuery.addScalar("MDATE", new org.hibernate.type.TimestampType());
List<Object[]> resultList = query.getResultList();
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值