在hibernate下操作oracle的Date类型,产生的奇怪问题

zhaoqiubo 2006-05-18 09:36:16
java环境:jdk1.4.2_11
数据库:oracle9iR2
hibernate版本:3.12

数据库中字段类型为Date,利用原生sql查询的时候产生问题如下:
只能得到该字段的日期部分,而得不到时间部分;但是在本地利用toad进行查询还能够查询出时间部分的内容。

代码如下:
List list = session.createSQLQuery(
"select p.stime,p.code,p.ctbtncode from Process p").list();
for (int i = 0; i < list.size(); i++) {
Object[] obj = (Object[]) list.get(i);
log.info("time=====" + obj[0].toString());
log.info(obj[0] == null ? "" : obj[0].toString().substring(0,
16));
log.info(obj[1].toString());
// log.info(obj[2].toString());

}




有谁碰到过类似问题,请不吝赐教~!
...全文
325 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoqiubo 2006-05-25
  • 打赏
  • 举报
回复
不是Date,可是我其他机器上的都是Timestamp,都可以取到,就这台机器上面取不到。我不知道为什么。
UPCCPU 2006-05-20
  • 打赏
  • 举报
回复
Process 类中time类型是java.sql.Date吗?
改成java.util.Date就能取到时间的
zhaoqiubo 2006-05-20
  • 打赏
  • 举报
回复
有人回答吗?
zhaoqiubo 2006-05-18
  • 打赏
  • 举报
回复
错误提示信息:


JDBC driver: Oracle JDBC driver, version: 9.2.0.1.0
java.lang.StringIndexOutOfBoundsException: String index out of range: 16
at java.lang.String.substring(String.java:1441)
at com.ujroa.editor.asctbtn.dao.AsctbtnDAO.select(AsctbtnDAO.java:51)
at com.ujroa.editor.asctbtn.test.TestAsctbtnDAO.testSelectAll(TestAsctbtnDAO.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
09:41:55,578 INFO Dialect:106 - Using dialect: org.hibernate.dialect.Oracle9Dialect
zhaoqiubo 2006-05-18
  • 打赏
  • 举报
回复
晕倒,我知道字符长度不够了,可是为什么啊?用toad客户端查询是好用的,里面明明就是yyyy-mm-dd hh24:mi:ss格式的东西,却查询不出来,用hsql就可以查询出来,用原生sql就不好用。
sole_lodestar 2006-05-18
  • 打赏
  • 举报
回复
StringIndexOutOfBoundsException
字符长度不够了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧