◎筱米加步枪◎.Blog

Happy coding

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.