Hibernate利用Query接口进行HQL查询

一、Query的作用

Hibernate利用Query接口进行HQL查询_第1张图片


二、Query的使用方法

Hibernate利用Query接口进行HQL查询_第2张图片


三、参数设置

Hibernate利用Query接口进行HQL查询_第3张图片


四、实例应用

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;
 }



你可能感兴趣的:(Hibernate,HQL,实例)