我在IBatis版本2中编写了以下SQL语句:
<select id="mySelect" resultClass="long" >
SELECT COUNT(*)
FROM myTable
WHERE myTable.columnA IN
<iterate property="myInClauseValues" open="(" close=")" conjunction=",">
#myInClauseValues[]#
</iterate>
</select>如果myInClauseValues (这是一个带有Long的ArrayList )至少包含一个值,则该语句可以很好地工作。但如果myInClauseValues为空,我会收到如下错误消息(我正在使用oracle数据库):
Check the statement (query failed).
Cause: java.sql.SQLException: ORA-00936: Expression is missing 发布于 2015-02-06 14:47:45
使用Ibatis动态查询是正确的方式吗??
例如:
<select id="mySelect" resultClass="long" >
SELECT COUNT(*)
FROM myTable
<where>
<isNotEmpty prepend="AND" property="myInClauseValues" >
myTable.columnA IN
<iterate property="myInClauseValues" open="(" close=")" conjunction=",">
#myInClauseValues[]#
</iterate>
</isNotEmpty>
</where>
</select>https://stackoverflow.com/questions/28359831
复制相似问题