我遇到了一个动态查询的错误。这是我的查询语句:
<dynamic>
select * from Tbl_Member
WHERE
<isNotNull property="FirstName">
FIRST_NAME = #lastName#
</isNotNull>
<isNotNull prepend="and" property="lastName">
LAST_NAME = #lastName#
</isNotNull>
<isNotNull prepend="and" property="">
</isNotNull>
.
.
.
.
</dynamic>
如果属性
FirstName
不为空,查询就可以运行。但是如果这个属性为空,而另一个左侧的属性LastName
不为空,我会得到一个SQL错误。因为在这种情况下,SQL语句变成如下形式:
select * from Tbl_Member WHERE AND LAST_NAME = ? ...
如何在第一个属性变为
Null
时删除首个前置的 AND
?附注:
我也尝试了
removeFirstPrepend="true"
。<isNotNull prepend="and" property="lastName" removeFirstPrepend="true">
LAST_NAME = #lastName#
</isNotNull>
但不幸的是,它也没有起作用。