使用hibernate的createSQLQuery方法时,写sql语句,注意的地方

来源:互联网 发布:网络词语大全2016 编辑:程序博客网 时间:2024/05/22 10:48

下面的sql

SELECTh.APPLY_RESOURCE_ID `hostId`,h.IP_ADDRESS `ip`,h.HOST_NANE `hostName`,h.MONITOR_FLG `monitorFlag`,s.CPUTOP `cpuTop`,s.PCPUFREE `pCpuFree`,s.MEMORYTOP `memoryTop`,s.PMEMORYFREE `pMemoryFree`,s.CPUMEMORY `cpuMemory`,r.CPU_CORE_COUNT `core`,r.RAM_SIZE `memory`FROMT_CC_APPLYED_HOSTINFO hLEFT JOIN T_VM_SURVERY_INFO s ON h.APPLY_RESOURCE_ID = s.VMIDAND s.DATE = '2015-02-08'JOIN T_CC_APPLYED_HOST_RESOURCE r ON h.APPLY_RESOURCE_ID = r.APPLY_RESOURCE_IDWHEREh.ENABLE_FLG = 1

当使用下面的方法去执行的话,会出现异常

public List findBySql(final String queryString, final Object[] values,final int firstResult, final int maxResults) {return getHibernateTemplate().executeFind(new HibernateCallback() {public Object doInHibernate(Session session)throws HibernateException, SQLException {Query query = null;if (isIsupper()) {query = session.createSQLQuery(queryString.toUpperCase().replace("%Y-%M-%D %H:%I:%S", "%Y-%m-%d %H:%i:%s"));logger.info("querystring is :" + queryString.toUpperCase());} else {query = session.createSQLQuery(queryString);//logger.info("querystring is :" + queryString);}if (-1 != firstResult) {query.setFirstResult(firstResult);}if (-1 != maxResults) {query.setMaxResults(maxResults);}if (null != values) {for (int i = 0; i < values.length; i++) {query.setParameter(i, values[i]);}}return query.list();}});}

因为虽然使用sql构建createSql,但是sql中不能使用别名,所以出现异常,

0 0
原创粉丝点击