如果我有String sDate = "2007-10-10 00:00:00";
要把数据插入 Orecle10G中的一个Date类型的表字段中。
sDate 转换成Date类型后放到POJO中用Hibernate带的Save方法插入日期数据。
问题:为什么表中只有2007-10-10,而不是2007-10-10 00:00:00?
(如果我的数据是String sDate = "2007-10-10 00:00:01";时,表中的数据就是2007-10-10 00:00:01)怎么才能让表数据是2007-10-10 00:00:00?

解决方案 »

  1.   

    不能用Date类型
    要用Timestamp类型的,Hibernate中好象必须这么弄吧
    记不清楚了
    要不用Hibernate直接在sql语句里就能定义日期时间的格式
    你试一下吧
      

  2.   

    在你的pojo配置文件中将该持久类属性的type设置为timestamp
      

  3.   

    不能吧??
    看看转Date转对没?
    把sDate转成Date 之后再toLocaleString()打印出来看一下。
      

  4.   

    PO中类型可以设置为timestamp,这个应该算是比较正常的做法吧。如果想映射为Date类型的话,在Hibernate中一定映射为java.util.Date,而不是java.sql.Date
      

  5.   

    1、我的pojo配置文件中属性的type设置是timestamp。
    2、Date toLocaleString()的结果是2007-10-10 0:00:00。
    3、我的Oracle数据库定义的字段是DATE型.
    4、pojo 引用的是java.util.Date。
    问题:为什么表中数据是2007-10-10,而不是2007-10-10 00:00:00??
      

  6.   

            Pojo:        import java.util.Date;
    private Date createTime;
            <property name="createTime" type="timestamp">
                <column name="CREATE_TIME" length="7" />
            </property>
      

  7.   

    1、项目要求不能调用Sql或是Hql中的日期格式话,
    例如:TO_CHAR(Time,'YYYY-MM-DD HH:MI:SS')等,
    只能用Save Pojo对象的方法。2、我的Pojo中的属性的type设置是timestamp。3、把sDate转成Date 之后再toLocaleString()打印出来的
    结果是:2007-10-10 0:00:00。4、Pojo的java类里引用的是java.util.Dateimport java.util.Date;
    private Date createTime;        <property name="createTime" type="timestamp">
                <column name="CREATE_TIME" length="7" />
            </property>Timestamp类型的我也试过了,如:import java.sql.Timestamp;
    private Timestamp createTime;        <property name="createTime" type="timestamp">
                <column name="CREATE_TIME" length="7" />
            </property>
    问题:为什么数据库表中数据是:2007-10-10,而不是:2007-10-10 00:00:00?
      

  8.   

    oracle 10g中有DATE型没有DATETIME型!!!!
      

  9.   

    PL SQL 里看到的,不是输出格式的问题。
      

  10.   

    PL SQL 里看到的,不是输出格式的问题。
      

  11.   

    XML映射文件中数据类型date改为timestamp就行了
      

  12.   

    我的Pojo的XML配置文件属性的type设置是timestamp。 
      

  13.   

    length的长度调过了,去掉和增加长度效果都一样。存的还是没有00:00:00!!
      

  14.   

    如果是日期+时间,就是timestamp类型
      

  15.   

    我的Pojo的XML配置文件属性的type设置是timestamp。
    如果时间是2007-10-29 00:00:01 数据库的记录是 2007-10-29 00:00:01
    如果时间是2007-10-29 00:00:00 数据库的记录是 2007-10-29。
    怎样可以保存 2007-10-29 00:00:00这样的数据?要求用Hibernate的POJO对象保存,不用Sql或Hql定义时间格式保存。
      

  16.   

    我的Pojo的XML配置文件属性的type设置是timestamp。 
    如果时间是2007-10-29   00:00:01   数据库的记录是   2007-10-29   00:00:01 
    如果时间是2007-10-29   00:00:00   数据库的记录是   2007-10-29。 
    怎样可以保存   2007-10-29   00:00:00这样的数据?要求用Hibernate的POJO对象保存,不用Sql或Hql定义时间格式保存。
      

  17.   

    long nowTime = new Date().getTime();
    Timestamp ttp = new Timestamp(nowTime);
    System.out.println(ttp);
      

  18.   

    你不会把string转成跟数据库中格式 一样的类型啊
      

  19.   

    Date是日期类型就是年月日,没有后面的
      

  20.   

    应该不是持久层出了问题,可能是 WEB层出现的问题
    以前,我用WebWork+Spring+Hibernate作应用时,也碰到过类似的问题
    后来 专门在网上找了两个类型映射器解决了此问题不知道你表示层用的什么Form Object,怎么转换为持久层的PO的,这个过程中的类型转换时,可能丢失数据的
      

  21.   

    前两天写代码也碰到了这个问题,Google一下,好像是Hibernate的一个BUG。后来是用callback方式重新处理了一下。