Oracle中char类型字段在Hibernate中SQL查询只返回一个字符 解决方法
场景如下:
使用char(2)的类型来标识某个类型,比如01,02,03...
结果使用Hibernate的SQL查询该字段只返回0,0,0...
跟踪发现,char类型映射出Java对象是Character,说明char在Java中只有两个字节(一个字符),因此只返回0
解决方法:
通过限定他的返回类型为String就行了,如下:
SQLQuery query = session.createSQLQuery(sql);
query.addScalar("列名",Hibernate.STRING);
即可解决.不过会导致对所查询的字段都要加上addScalar.