问题描述
SSH框架中,BaseDAOHibernateextendsHibernateDaoSupport,并且对HibernateDaoSupport中常用的方法做了进一步的封装,要用时只需调用BaseDAOHibernate中的方法即可,但是BaseDAOHibernate中有这样一个方法只会用不明白什么原理,/***根据Hibernate的本地sql调用,查询数据结果*支持查询整个表所有的字段{t.*}声明实体entities,和个别几个字段(声明标量scalaries)**@paramsql*@paramentities*实体声明数组*@paramscalaries*标量声明数组Map*@return**<code>*Stringsql="SELECTt.pkidAS{t.*}"+*"FROMumg_grouptSTARTWITHt.supergroupid=10CONNECTBYPRIORt.pkid=t.supergroupid";**System.out.println(dao.executeSQL(sql,newObject[][]{{"t",Group.class}},null).size());*</code>*<code>*Stringsql="SELECTto_number(pkid)ASpkId,kindnameASgroupName,"+*"status-1ASstatus,nullASmanager,0ASsuperGroupId"+*"FROMumg_groupkindWHERElength(pkId)=2"+*"UNION"+*"SELECTpkId,groupname,status-1ASstatus,manager,superGroupId"+*"FROMumg_groupWHEREstatus<>9";*Object[][]scalaries={*{"pkId",Hibernate.INTEGER},*{"groupName",Hibernate.STRING},*{"status",Hibernate.INTEGER},*{"manager",Hibernate.STRING},*{"superGroupId",Hibernate.INTEGER}};*System.out.println(dao.executeSQL(sql,null,scalaries).size());*</code>*/protectedListlist(Stringsql,Object[][]entities,Object[][]scalaries){returnlist(sql,entities,scalaries,null);}只知道大概怎么用这个方法,这个方法应该不是父类的HibernateDaoSupport中的方法吧,是hibernate对sql的原生支持吗?这个方法从哪来的啊,是什么原理呢?真没分了,求大神们帮忙吧,小弟感激不尽!