如果元素不需要,如何添加条件子句?
How can I add condition clause not required if element?
假设我的界面看起来像这样。
@Mapper
interface UserMapper {
List<User> search(@Nullable String namePattern, int minAge);
}
如何使用不需要 <if/>
元素的 minAge
参数?
我应该只用 <if test="true"/>
吗?
<where>
<if test="namePattern != null">
name LIKE #{namePattern}
</if>
<if test="true"> <!-- just true??? -->
AND age >= #{minAge}
</if>
</where>
我可以剥离第二个 <if/>
元素吗?
<where>
<if test="namePattern != null">
name LIKE #{namePattern}
</if>
AND age >= #{minAge} <!-- will it blend? -->
</where>
当然可以。 <where />
删除了不必要的 AND
,所以它应该可以工作。
另一种方法是将age
条件写在<if />
前面。
WHERE age >= #{minAge}
<if test="namePattern != null">
AND name LIKE #{namePattern}
</if>
假设我的界面看起来像这样。
@Mapper
interface UserMapper {
List<User> search(@Nullable String namePattern, int minAge);
}
如何使用不需要 <if/>
元素的 minAge
参数?
我应该只用 <if test="true"/>
吗?
<where>
<if test="namePattern != null">
name LIKE #{namePattern}
</if>
<if test="true"> <!-- just true??? -->
AND age >= #{minAge}
</if>
</where>
我可以剥离第二个 <if/>
元素吗?
<where>
<if test="namePattern != null">
name LIKE #{namePattern}
</if>
AND age >= #{minAge} <!-- will it blend? -->
</where>
当然可以。 <where />
删除了不必要的 AND
,所以它应该可以工作。
另一种方法是将age
条件写在<if />
前面。
WHERE age >= #{minAge}
<if test="namePattern != null">
AND name LIKE #{namePattern}
</if>