SQLQuery 实现别名映射

public List getQueryList(Map paramMap, int start, int maxResults) throws DataAccessException, HibernateException,
            InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
        String woNo = "";
        String woSubject = "";
        Date creationDateFrom = null;
        Date creationDateEnd = null;

        if (paramMap.get("woNo") != null) {
            woNo = (String) paramMap.get("woNo");
        }
        ;
        if (paramMap.get("woSubject") != null) {
            woSubject = (String) paramMap.get("woSubject");
        }
        if (paramMap.get("creationDateFrom") != null) {
            creationDateFrom = (Date) paramMap.get("creationDateFrom");
        }
        if (paramMap.get("creationDateEnd") != null) {
            creationDateEnd = (Date) paramMap.get("creationDateEnd");
        }

        StringBuffer buf = new StringBuffer();
        buf.append("select abh.*,");
        buf.append("fw.wo_no bill_code,");
        buf.append("fw.wo_type bill_type,");
        buf.append("fw.wo_subject bill_title,");
        buf.append("fw.created_date creation_date,");
        buf.append("fw.process_instance_id process_instance_id,");
        buf.append("'transated' task_type,");
        buf.append("(select au.user_name from arch_user au where au.user_id=abh.created_by) created_name,");
        buf.append("(select ao.org_name from arch_org ao where ao.org_id=abh.arch_org_company_id) region_company_segment,");
        buf.append("(select ao.org_name from arch_org ao where ao.org_id=abh.arch_org_dept_id) region_dept_segment");
        buf.append(" from FAS_WORKORDER fw, ACCOUNT_BILL_HEAD abh where 1 = 1 ");
        buf.append(" and fw.businessid = abh.account_bill_head_id");
        buf.append(" and fw.wo_no like :woNo");
        buf.append(" and fw.wo_subject like :woSubject");
        buf.append(" and fw.created_date between nvl(:creationDateFrom,fw.created_date) and nvl(:creationDateEnd,sysdate)");
        buf.append(" order by fw.created_date desc");

        List beanList = null;
        Session session = null;
        try {
            session = accountBillHeadDAO.getHibernateTemplate().getSessionFactory().openSession();
            //获得本地sql查询对象
            SQLQuery query = session.createSQLQuery(buf.toString());
            //设置字符串参数
            query.setString("woNo", "%" + woNo + "%");
            query.setString("woSubject", "%" + woSubject + "%");
            //设置日期参数
            query.setDate("creationDateFrom", creationDateFrom);
            query.setDate("creationDateEnd", creationDateEnd);
            //设置分页
            query.setFirstResult(start);
            query.setMaxResults(maxResults);
            query.setResultTransformer(new ExtColumnToBean(AccountBillHeadVOImpl.class));
            
            beanList = query.list();
        } catch (RuntimeException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            session.flush();
            session.close();
        }
        return beanList;
    }

 

posted on 2014-07-04 15:34  rigidwang  阅读(1317)  评论(1编辑  收藏  举报