hibernate多表复杂查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hibernate遇到多表连接复杂查询,并且需要使用某数据库的函数,就不能使用HQL语句了,只能使用原生SQL查询。
public
log.debug("findPageBySql:"+sql);
String queryString = sql;
Query queryObject = getSession().createSQLQuery(queryString)
.addScalar("goods_id", StandardBasicTypes.STRING)
.addScalar("name", StandardBasicTypes.STRING)
.addScalar("price", StandardBasicTypes.STRING)
.addScalar("image_id", StandardBasicTypes.STRING)
.addScalar("url", StandardBasicTypes.STRING)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//返回一个map,KEY:为DB中名称一致(大小写一致)直接就map.get("SUMID")可以取值了
//分页查询
queryObject.setFirstResult((currPage - 1) * pageSize);
queryObject.setMaxResults(pageSize);
getSession().clear();
return queryObject.list();
}
在Controller中调用:
List list = commonDAO.findPageBySql(currPage, pageSize, sql);
JSONObject jo = new JSONObject();
String listStr = JSON.toJSONString(list);
("jo.toJSONString()=="+jo.toJSONString());
直接就是键值对