一、Query的作用
二、Query的使用方法
三、参数设置
四、实例应用
public List list(String querySQL, Map<String, Object> map, Pager page)
throws Exception {
List list = null;
try {
session = sessionFactory.openSession();
String sql = rebuildOrgSql(querySQL, orgId, listAllOrgs);
Query query = session.createQuery(sql);
if (map != null) {
for (String key : map.keySet()) {
if (sql.indexOf(":" + key) != -1) {
query.setParameter(key, map.get(key));
System.out.println("param[" + key + "]==="
+ map.get(key));
}
}
}
if (page != null) {
query.setFirstResult(page.getFromRow());
query.setMaxResults(page.getRowsPerPage());
} else {
query.setFirstResult(0);
query.setMaxResults(20);
}
list = query.list();
if (page != null) {
Query countQuery = session.createQuery(countSql(sql));
if (map != null) {
for (String key : map.keySet()) {
if (sql.indexOf(":" + key) != -1) {
countQuery.setParameter(key, map.get(key));
System.out.println("param[" + key + "]==="
+ map.get(key));
}
}
}
if (countQuery != null) {
List countlist = countQuery.list();
if (countlist != null && countlist.size() > 0) {
page
.setTotalRow(((Number) countlist.get(0))
.intValue());
}
}
}
} catch (Exception e) {
e.printStackTrace();
PubLogs.dbLogError(new StringBuffer("获取查询列表失败!").append(
"PubHibernate.list(querySQL)").append(
"querySql=" + querySQL), e);
throw e;
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
if (list != null) {
covertNullToSpace(list);
}
return list;
}