SqlMapExecutorDelegate delegate=((ExtendedSqlMapClient)(getSqlMapClientTemplate().getSqlMapClient())).getDelegate();
MappedStatement ms = delegate.getMappedStatement(sqlName);
Sql sql=ms.getSql();
String exmSql = sql.getSql(null, conditions); //获得运行期sqlconditions是个map
值为:{minSize=0, groupID=103081, maxSize=10, rows=10, sort=null, page=1, colStr=R_216920,R_216919,R_216918,R_216917,R_216911,R_216915,R_216914,R_216913,R_216912,R_216916, order=null, tableName=mi_boss.MST_PRJADM_CUST_LIST_103081}ibatis中的sql为:
<select id="queryR_GroupList" resultClass="java.util.HashMap"
parameterClass="java.util.Map" remapResults="true">
SELECT $colStr$
FROM $tableName$
<dynamic prepend="">
<isNotEmpty prepend="" property="codeStr">
$codeStr$
</isNotEmpty>
where 1=1
<isNotEmpty prepend="and" property="localCode">
local_code = '$localCode$'
</isNotEmpty>
<isNotEmpty prepend="and" property="monthNo">
billing_cycle = #monthNo#
</isNotEmpty>
</dynamic>
limit #rows:DECIMAL# offset #minSize:DECIMAL#
</select>不知道为什么,获取那个sql时总报空指针....
我试了其他的sql能获取出来。
这个sql查询也查出来,但是就是获取运行期sql报空指针
这是为什么啊??/难道获取运行期sql还有什么其他的限制吗????
在线等。。急/。/
MappedStatement ms = delegate.getMappedStatement(sqlName);
Sql sql=ms.getSql();
String exmSql = sql.getSql(null, conditions); //获得运行期sqlconditions是个map
值为:{minSize=0, groupID=103081, maxSize=10, rows=10, sort=null, page=1, colStr=R_216920,R_216919,R_216918,R_216917,R_216911,R_216915,R_216914,R_216913,R_216912,R_216916, order=null, tableName=mi_boss.MST_PRJADM_CUST_LIST_103081}ibatis中的sql为:
<select id="queryR_GroupList" resultClass="java.util.HashMap"
parameterClass="java.util.Map" remapResults="true">
SELECT $colStr$
FROM $tableName$
<dynamic prepend="">
<isNotEmpty prepend="" property="codeStr">
$codeStr$
</isNotEmpty>
where 1=1
<isNotEmpty prepend="and" property="localCode">
local_code = '$localCode$'
</isNotEmpty>
<isNotEmpty prepend="and" property="monthNo">
billing_cycle = #monthNo#
</isNotEmpty>
</dynamic>
limit #rows:DECIMAL# offset #minSize:DECIMAL#
</select>不知道为什么,获取那个sql时总报空指针....
我试了其他的sql能获取出来。
这个sql查询也查出来,但是就是获取运行期sql报空指针
这是为什么啊??/难道获取运行期sql还有什么其他的限制吗????
在线等。。急/。/
凡是出现那种动态的sql 都会取不出来,报空指针
包含
<isNotEmpty prepend="and" property="isCheck">
t.IS_EVENT = $isCheck$
</isNotEmpty>
像这种判断的
就会报。
其他的没有包含的就不会。
有兄弟姐妹也碰到过这种问题的嘛??
我正常用的代码是:sqlMap.queryForList("loadSaleHistory")loadSaleHistory:为配置文件中ID
sqlMAP为SqlMapClient类型的实例