您的位置:首页 > 产品设计 > UI/UE

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

2015-02-09 13:30 1226 查看
下面的sql

SELECT
h.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`
FROM
T_CC_APPLYED_HOSTINFO h
LEFT JOIN T_VM_SURVERY_INFO s ON h.APPLY_RESOURCE_ID = s.VMID
AND s.DATE = '2015-02-08'
JOIN T_CC_APPLYED_HOST_RESOURCE r ON h.APPLY_RESOURCE_ID = r.APPLY_RESOURCE_ID
WHERE
h.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中不能使用别名,所以出现异常,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐