在做统计查询的时候需要使用到一个常量,如
session.createsqlquery("select '张三' as name from tab").list()
查询,结果只返回了一个 ‘张’。常量在中被认为是char类型的,hibernate取值时将其保存为character类型,而character只能保存一个字符,所以造成返回值只存在一个字符。
解决方法:
1、设置标量对应的类型
session.createsqlquery("select '张三' as name from tab")
.addscalar("name", hibernate.string)
.list()
2、显示的转换类型
session.createsqlquery("select cast('张三' as varchar(10)) as name from tab").list()