hibernate查询Oracle10g中类型为timestamp的问题

时间:2021-01-07 07:35:03
Oracle数据库locatedata表中有个字段starttime,类型为timestamp,
通过hibernate影射生成Locatedata.hbm.xml中类型为 type="java.lang.String"


数据库中starttime数据为  2009-08-25 14:16:28 000

但是我查询后在页面就显示成了  2009-8-25.14.16. 28. 0 


请问: 这是怎么回事!这问题怎么解决???

10 个解决方案

#1


要设一下数据格式

#2


没有这么映射过,我们用的也是10g,数据库里为date类型,javabean里为java.util.date类型。我想你把映射改为java.util.date就可以了。输出页面的时候稍微格式化一下就去掉后面的.0了

#3


至于原因,不清楚。
你的秒后面的 是否需要显示,如果不需要显示,那你直接在service层把他截掉,应该也是一种办法。

#4


hbm.xml 里的映射类型改为:java.sql.Timestamp

#5


顶下

#6


我把类型调为java.sql.Timestamp或者java.util.date ,都不行

#7


org.hibernate.TimestampType
--------------------------------------
if you use java.sql.Timestamp  this method will get string from db and convert string  param to 
timestamp object.
-------------------------------------------------------------------------------------
public static Timestamp valueOf(String s){
  return new Timestamp(year, month, day, hour, minute, second,  a_nanos);
}

#8


没弄过

#9


楼主干吗不用date类型呢 这个要比那个好的多 
至于那个吗 你在页面上显示的时候 先进行格式化 在显示就行了

#10


谢谢大家,问题解决了,数据库中定义的类型为Timestamp,hibernate自动生成的映射文件里类型变为String,  我把String改成Date类型,问题就解决了 。

#1


要设一下数据格式

#2


没有这么映射过,我们用的也是10g,数据库里为date类型,javabean里为java.util.date类型。我想你把映射改为java.util.date就可以了。输出页面的时候稍微格式化一下就去掉后面的.0了

#3


至于原因,不清楚。
你的秒后面的 是否需要显示,如果不需要显示,那你直接在service层把他截掉,应该也是一种办法。

#4


hbm.xml 里的映射类型改为:java.sql.Timestamp

#5


顶下

#6


我把类型调为java.sql.Timestamp或者java.util.date ,都不行

#7


org.hibernate.TimestampType
--------------------------------------
if you use java.sql.Timestamp  this method will get string from db and convert string  param to 
timestamp object.
-------------------------------------------------------------------------------------
public static Timestamp valueOf(String s){
  return new Timestamp(year, month, day, hour, minute, second,  a_nanos);
}

#8


没弄过

#9


楼主干吗不用date类型呢 这个要比那个好的多 
至于那个吗 你在页面上显示的时候 先进行格式化 在显示就行了

#10


谢谢大家,问题解决了,数据库中定义的类型为Timestamp,hibernate自动生成的映射文件里类型变为String,  我把String改成Date类型,问题就解决了 。