命名sql使用sum( $field$ )动态统计总数,执行报错
来源:互联网 发布:数据库系统课程设计 编辑:程序博客网 时间:2024/09/21 06:34
阅读原文
【问题描述】
想通过命名sql,动态统计Platform7.6系统表cap_user对应列值的总数,执行出错
命名sql:
<sqlMap>
<select id="select_id" parameterClass="java.util.Map" resultClass="commonj.sdo.DataObject">
select sum( $field$ ) from cap_user
</select>
</sqlMap>
调用命名sql的逻辑流,param为java.util.HashMap类型
报错信息:
Caused by: com.primeton.das.sql.impl.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in C:\primeton\platform76\apache-tomcat-7.0.54\webapps\default\WEB-INF\_srv\work\user\com.primeton.eos.demo\com\primeton\eos\demo\newnamingsql.namingsql. --- The error occurred while applying a result map.
--- Check the com.primeton.eos.demo.newnamingsql.select_id-AutoResultMap.
--- Check the result mapping for the 'SUM(OPERATOR_ID)' property.
--- Cause: com.primeton.ext.data.xpath.IllegalXPathException: has illegal literal 'SUM(OPERATOR_ID)' in xpath 'SUM(OPERATOR_ID)'. at com.primeton.das.sql.impl.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:263) at com.primeton.das.sql.impl.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:166) at com.primeton.das.sql.impl.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:634)
...... Caused by: com.primeton.ext.data.xpath.IllegalXPathException: has illegal literal 'SUM(OPERATOR_ID)' in xpath 'SUM(OPERATOR_ID)'.
【解决方案】
问题原因:因为sum( $field$ )的返回结果根据resultClass映射出错,可参考如下两种方式调整命名sql,demo见附件:
1】<sqlMap>
<select id="select_id" parameterClass="java.util.HashMap" resultClass="commonj.sdo.DataObject">
select sum($field$) as 'total' from cap_user
</select>
</sqlMap>
2】<sqlMap>
<select id="select_id" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
select sum($field$) from cap_user
</select>
</sqlMap>
demo.zip
- 命名sql使用sum( $field$ )动态统计总数,执行报错
- ibatis执行动态sql报错
- sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数
- sql sum同时统计一个字段两种情况的总数
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错“动态执行表不可访问,本会话的自动统计被禁止”
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- 解决PLSQL报错“动态执行表不可访问,本会话的自动统计被禁止”
- 解决PLSQL报错"动态执行表不可访问,本会话的自动统计被禁止"
- hibernate 如何执行sql 查询出总数
- 总数统计
- Hibernate中使用count(*)统计记录总数
- 关于PLSQL Developer报"动态执行表不可访问,本会话的自动统计被禁止"错的解决方法 .
- oracle计算一个日期加上指定工作日(排除周六周日和一系列节假日)时间
- n*fs/N
- android系统信息和应用信息
- 浅谈跨域的几种方式
- Android音视频处理之MediaMuxer(MP4)
- 命名sql使用sum( $field$ )动态统计总数,执行报错
- Spark RDD介绍
- MySQL数据库判断字段是否为NULL的误区
- 硬盘坏道如何屏蔽?最全攻略都在这了!
- cocos 寻路, lua
- 重载WndProc函数
- WySQL
- vue-cli结合vuex架构目录
- 墨卡托坐标以及 墨卡托坐标转经纬度