0

假设我有一个像这样的界面。

@Mapper
interface UserMapper {
    List<User> search(@Nullable String namePattern, int minAge); 
}

如何处理minAge不需要<if/>元素的参数?

我应该做<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>
4

1 回答 1

1

当然。<where />删除不必要AND的,所以它应该工作。

另一种方法是将age条件写在 s 前面<if />

WHERE age >= #{minAge}
<if test="namePattern != null">
  AND name LIKE #{namePattern}
</if>
于 2020-03-17T02:25:30.887 回答