isyysblog

刚刚拿到一个hibernate框架,让开发个接口。

由于是两个表联合查询,只需要表里面的几个字段。

刚开始搞了个hibernate 映射文件,报错还没啥用就删了。

然后我就想着直接用sql 直接查,然后转实体类操作。

开始查是查出来了,也能按List<class> 这种返回到业务类,但是想拿出来处理的时候,就报类型转换的错

我还以为是数据库查出来的字段,类型跟实体类不匹配,我又把数据库字段都转换了一下类型。发现没有用。

然后百度搜索,前面几个都是用addEntity,我试了,也是会报类型转换异常。

然后就继续找,看到了这篇文章https://www.cnblogs.com/henuyuxiang/p/4273090.html

用sqlquery.setResultTransformer(Transformers.aliasToBean(WinxinOrderRecordPojo.class));这种办法处理。然后一试确实香。

就是设置字段类型有点麻烦,下面是我的代码部分,供参考

SQLQuery sqlquery = this.getSession().createSQLQuery(winxinOrderRecordhql.toString());
sqlquery.addScalar("patientname", Hibernate.STRING);
sqlquery.addScalar("status", Hibernate.STRING);
sqlquery.addScalar("inhospitalname", Hibernate.STRING);
sqlquery.addScalar("zjhm", Hibernate.STRING);
sqlquery.addScalar("zjlx", Hibernate.STRING);
sqlquery.addScalar("intwodeptname", Hibernate.STRING);
sqlquery.addScalar("jzsj", Hibernate.STRING);
sqlquery.addScalar("yjzzsj", Hibernate.STRING);
sqlquery.addScalar("yymc", Hibernate.STRING);
sqlquery.setResultTransformer(Transformers.aliasToBean(WinxinOrderRecordPojo.class));
return (List<WinxinOrderRecordPojo>)sqlquery.list();

 

分类:

技术点:

相关文章: