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)这个方法,也可以在统计的时候发挥作用,暂时现在还不了解,以后待补充!
原标题:Hibernate用Sql查询封装到实体类
关键词:Hibernate