你的位置:首页 > Java教程

[Java教程]Hibernate用Sql查询封装到实体类


Hql查询语句可以自动封装到实体类中,但是sql语句需要用到方法才可以

 1   @Override 2   @SuppressWarnings("unchecked") 3   public <T> Pagination<T> getPageResultObjectParamsBySql(Class<T> clazz, 4 String hql, int pageNo, int pageSize, 5       Object[] param) 6       throws RuntimeException { 7     List<T> list = null; 8     Pagination<T> page; 9     try {10       Session session = getSession();11       log.info("[执行HQL:{}]", hql);12       Query query = session.createSQLQuery(hql).addEntity(clazz);//重点在这块,把要转换的类加进去,返回数据的时候会自动转换成这个类的对象;13       buildParam(query, param);14       list = query.setFirstResult((pageNo - 1) * pageSize)15           .setMaxResults(pageSize).list();16       page = new Pagination<T>(list, pageNo, pageSize);17     } catch (RuntimeException e) {18       log.error("[执行basedao#{}出错:{}]", "getPageResult", e.getMessage());19       throw e;20     }21     return page;22   }

另外:.addScalar(columnAlias, type)这个方法,也可以在统计的时候发挥作用,暂时现在还不了解,以后待补充!