数据库生成的语句:INSERT INTO net.cyclopaedic( id, title, "content", "Sysdate", "type")VALUES (3, '公告', '内容', '2010-07-012', '1');hibernate生成的语句:
insert into net.cyclopaedic (title, content, Sysdate, type, id) values ('公告', '内容', NULL, '1', '1') 
只是Sysdate 没有用""引起来,就插入不了数据··导致我hibernate 不能顺利插入数据
为什么呢?~有什么解救方法

解决方案 »

  1.   

    Sysdate 是保留字,一个函数。所以你必须使用""来说明。没有其它方法,除非你改字段名。这也是为什么不建议使用保留字为表名,字段名的原因。
      

  2.   

    Sysdate 改为 systime后 依然需要“”括起来;
    然而 "content", "type" 括不括起来·都没什么问题
      

  3.   

    大小写并不是问题!是这个名字有问题sysdate 是函数名。
      

  4.   

    我试过改好几个别名了~~~
    SysTime
    sysTime
    结果:systime 是不需要用""括起来的。。
    然而···如果字段名用上了某些命名法(有大小写),就需要用上"";补充:"content", "type" 都属于的保留字段?保留字段有哪些?
      

  5.   

    "Type" 和 "type" 如果用引号括起来则是不同的字段。
      

  6.   

    保留字,可以查查pg的手册。字段名尽量避免与保留字同名,加上"",就是便于SQL解析器进行解析。
      

  7.   

    Sysdate不是pgsql的保留字,pgsql取时间是now()函数,你这个问题应该是字段类型不匹配的问题,pgsql对类型的要求是比较严谨的,Sysdate是时间类型,插入一下NULL是不对的,你验证一下插入一个正确的时间格式看看