话不多说,直接问题:
使用createNativeQuery(sql)方法,编写原生sql语句进行数据库查询后,数据库中为char类型的字段(不是varchar),使用getResultList()方法后进行遍历.只能得到首值,不知是何故???  
例如: 该char类型字段值为2010-05-25 12:00 ,而经过此查询获得的值只有1个 2 .....  
createNativeQuery(sql,Entity.class)的方法暂时不想考虑.. 
不知道数据库中的char字段经过这种查询后的结果是什么?该怎么取出完整值? 直接写上我的sql语句吧.. 谁能帮帮忙.. 这个句子貌似不好用实体查询来实现(会比较复杂..).所以暂时非常不愿意对这俩个表都进行实体查询然后再一个个比较出maxts...select max(t.ts) maxts from (select ts from tb_xxxxx_so_preorder where ts>'"+preOrderStartTimeStamp+"' union all select ts from tb_xxxxx_so_preorder_b where ts>'"+preOrderStartTimeStamp+"') t

解决方案 »

  1.   

    忘了说了,对以上SQL语句我的处理是createNativeQuery(sql).getSingleResult().toString() 来取值. 结果和之前描述的一样.. 只能取到char字段的首值....
    囧 怎么办呢?
      

  2.   

    晕倒,我也遇到了同样的问题,我不想建立实体(出于某种原因),所以只能采用createNativeQuery去做查询。结果发现只要采用createNativeQuery(采用:不注入进实体的接口),就只能得到首字符(数据表CHAR字段),其他类型的字段,例如INT等都正常。请问有人解决了这个问题吗??非常感谢分享。
      

  3.   

    最后我也数据库的 字段类型改成了varchar了·