hibernate中如何保存timestamp字段?
数据库字段为oracle date字段落映射为timestamp
查了很多资料,好像也不行,插入不了数据库,空值也不行

解决方案 »

  1.   

    Hibernate的timestamp类型对应java.util.Date类型
      

  2.   

    我这样用还是不行
    myclass.setSh_date(new java.util.Date());我有一个是Date字段,可以为空,在PL/SQL中我可以插入不含Date的记录,也就是说Date为空能正常插入,可是Hibernate好像就不行,我已经设了not null="false" 插入不含Date的数据时还是会出错。我是用的SAVE方法,要是用自己拼SQL的方法的话,我想应该没有问题。现在的问题,插入语句没有出错(在TOMCAT中把显示SQL打开的话,也只能看到insert into (field1,field2,field3) values (?,?,?),看不具体的数值,有没有什么办法看到,插入的到底是什么?)但就是插不了。在SQL中Date是很简单的事,只要一个sysdate就行了,hibernate搞了2天了还不行?不插入日期都不行。
      

  3.   

    那就用hibernate的原生sql看看能不能插入
      

  4.   

    对象 你在搞什么
    hibernate操作是对象
    只要对应类型正确
    那么hibernate都能够操作成功
      

  5.   

    谢谢各位,已解决。
    是我的表单传递时有问题,但在TOMCAT的控制台中又看不出来,所以搞了半天。
    还有就是应该明确一下,POJO中一定要用Date的类型的,HBM文件中指定type="date",则插入表中的日期不带时间,如果HBM文件中指定type="timestamp",则插入表中的日期带有时间。
    另:关于sysdate的实现,网上找了一些是关于timestamp属性的如下:
    <timestamp name="lastModifiedDate" source="db"  
                column="LAST_MODIFIED_DATE" /> 
    要放在ID属性的后面,可是我测试了几次都没成功,不知为何。最头疼的就是:TOMCAT的控制台中能否看到hibernate执行的SQL的具体内容而不是用“?”代替?有没有办法?