用hibernate向oracle中插入数据时,sequence id 插入一个科学计数法数字的问题

cheekis 2008-02-20 05:05:34
如题,应用sequence生成id后,插入的id值显示为科学计数法。
配置文件如后:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="ge.threatscan.dataaccess.domainobject">
<class name="Command" table="RMD_COMMAND" >
<id name="id" type="int" column="ID" >
<generator class="sequence">
<param name="sequence" >RMD_COMMAND_SEQ</param>
</generator>
</id>
<property name="userID" type="string" column="USER_ID"></property>
<property name="status" type="string" column="STATUS"></property>
<property name="command" type="string" column="COMMAND"></property>
<property name="commandParameters" type="string" column="COMMAND_PARAMS"></property>
<property name="createTime" type="timestamp" column="CREATE_TIME"></property>
<property name="modifiedTime" type="timestamp" column="MODIFIED_TIME"></property>
</class>

</hibernate-mapping>

百思不得其解,偶尔发现给时间赋值时先转成指定的时间格式再转回来,就不会出现此问题。

public static Date convertImpactDate(Date date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
try {
String temp = sdf.format(date);
date = sdf.parse(temp);
} catch (ParseException e) {
throw e;
}
return date;
}
虽然现在好用,但是处理方法有些搞笑. :)

似乎大家很少有人遇到这个问题,怎么我刚开始用就碰到了,而且不是偶然事件,请高手指教.
...全文
592 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingjunming 2008-06-13
  • 打赏
  • 举报
回复
java.sql.Date , java.util.Date 的问题
Hibernate自动用 util.Date, 改为sql.Date就ok了
leaderbird 2008-05-12
  • 打赏
  • 举报
回复
我的也经常性遇到这个问题.估计是Hibernate有些BUG!
cheekis 2008-04-22
  • 打赏
  • 举报
回复
我是Hibernate 3.2.4+oracle9i+ojdbc14.jar,难道是版本不对引起的?我试试看,如果好用就给分了.
JBossWeek 2008-03-19
  • 打赏
  • 举报
回复
简单的测试了一下(Hibernate 3.2.6 + Oracle 9i + ojdbc14-9208.jar),没有发现lz的问题。只是在sequence超过15位时用Toad等工具查看时会以科学计数法显示,这是Oracle的数据显示问题与Hibernate没有关系。
cheekis 2008-03-17
  • 打赏
  • 举报
回复
想想hibernate这么流行,应该这个问题有非常好的解决方案才对。对于sequeceID的使用也应该是大家都用得才对吧,怎么就没有人给个明白呢??? 强烈要求版主站出来说话。。。
cheekis 2008-03-17
  • 打赏
  • 举报
回复
兄弟,本来不报希望有人回复了,一直没有看。不好意思
首先,对热心回复表示感激,然后不好意思地说一句我没搞明白你所说的内容 :(

一,iD和日期不是一个字段,不知道他们之间有什么联系?
二,日期,从util.date到sql.date,jdk应该会自动处理吧,而且存储的时间字段也没有任何问题。只是影响到了ID值而已

cheekis 2008-02-21
  • 打赏
  • 举报
回复
顶一下
jade007 2008-02-21
  • 打赏
  • 举报
回复
数据兼容问题,你的ID 是INT,系统有默认的日期格式,比如说你系统日期是yyyy-mm-dd hh:mm:ss,明显数据类型不配了,但你改为yyyymmddhhmmss,出现都是数值型,这样才转换才INT。

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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