使用hibernate的createSQLQuery方法时,写sql语句,注意的地方
2015-02-09 13:30
1226 查看
下面的sql
当使用下面的方法去执行的话,会出现异常
因为虽然使用sql构建createSql,但是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中不能使用别名,所以出现异常,
相关文章推荐
- hibernate4中使用createSQLQuery方法执行sql语句的用法
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- 使用Hibernate 5.0、4.0、3.0 createSQLQuery执行原生Sql语句 遇到问题及解决办法集锦
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异
- Hibernate使用sql语句查询,返回实体类型的方法及注意事项
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题