hibermysql 映射 mysql_框架技术-hiberntae查询mysql库字段是char类型的有关问题

框架技术--hiberntae查询mysql库字段是char类型的问题 hiberntae查询mysql库字段是char类型时,查询出的字段只有1个字母 如查询user表,name字段(char类型),为zhangsan 但是查询出的结果为:z 经网上收集资料了解到时hibernate在对原生SQL进行映射时出现的

框架技术--hiberntae查询mysql库字段是char类型的问题

hiberntae查询mysql库字段是char类型时,查询出的字段只有1个字母

如查询user表,name字段(char类型),值为zhangsan

但是查询出的结果为:z

经网上收集资料了解到时hibernate在对原生SQL进行映射时出现的问题。

解决方法,在查询出的解决过增加query.addScalar即可解决此问题

注意,使用了addScalar,就要将所有的字段都指定类型。

代码:

StringBuffer sb = new StringBuffer();

sb.append("select opcode, opname, parent_opcode, menu_level, top_parent_opcode, "

+ "top_top_parent, system_type, haschild, url "

+ "from ad_op_code_right ald where 1=1");

sb.append(conditions);

if (pageVo != null) {

PageUtil.generateConditions(pageVo, sb);

}

SQLQuery query = session.createSQLQuery(sb.toString());

ListaldList = new ArrayList();

ListopCodeList = new ArrayList();

// 手动映射,解决hibernate 对char类型字段映射问题

query.addScalar("opcode",Hibernate.INTEGER);

query.addScalar("opname",Hibernate.STRING);

query.addScalar("parent_opcode",Hibernate.INTEGER);

query.addScalar("menu_level",Hibernate.BYTE);

query.addScalar("top_parent_opcode",Hibernate.INTEGER);

query.addScalar("top_top_parent",Hibernate.INTEGER);

query.addScalar("system_type",Hibernate.BYTE);

query.addScalar("haschild",Hibernate.BYTE);

query.addScalar("url",Hibernate.STRING);

aldList = query.list();

参考网站:

http://cst.is-programmer.com/posts/29331.html.

http://www.fx114.net/qa-251-2954.aspx

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值