Hibernate SQLQuery 将结果集映射到自定义实体类

当用hibernate进行多表查询时感觉用hql很不方便,所以本人就选择用sql查询。
由于我接触hibernate不久,在进行结果集和实体类映射的时候出现了很多问题,还好在百度上花费了一些时间,最后终于解决了

1:首先将多表查询需要的各个字段自定义一个实体类,不需要映射文件
[color=red]OaYqsqVO类[/color]

private String id;
private String name;
private String aName;//a表的关联字段
private String bName;//b表的关联字段
private String cName;//c表的关联字段

get, set方法略


2:在进行查询的时候需要先将实体类中的字段用addScalar方法添加到query中,
用query.setResultTransformer(Transformers.aliasToBean(OaYqsqVO.class))
方法将实体类和结果集对应,代码如下

SQLQuery query = getSession().createSQLQuery(sql);
query.addScalar("id");
query.addScalar("name");
query.addScalar("aName");
query.addScalar("bName");
query.addScalar("cName");
query.setResultTransformer(Transformers.aliasToBean(OaYqsqVO.class));
return query.list();


这样基本就可以了,但是这出现了一个新问题,希望各位大牛帮忙
用hql查询后将list用
JSONArray.fromObject(list,jsonConfig).toString()
返回到前台中文无乱码

但是用sql查询将list用
JSONArray.fromObject(list,jsonConfig).toString()
返回到前台显示确出现乱码,不知道何因!!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值