使用Mybatis动态SQL时如何避免吸气剂?

时间:2019-04-12 06:54:28

标签: mybatis

在mybatis中,我们可以编写如下更新语句:

<update id="update" parameterType="com.test.User">
  update USERS
  <set>
    <if test="user.name != null">NAME=#{user.name},</if>
    <if test="user.age != null">AGE=#{user.age}</if>
  </set>
</update>

然后,它要求User类具有nameage属性的吸气剂,如果没有update语句,则映射可以在不添加任何吸气剂的情况下工作,有一种方法可以避免更新语句的获取者?

1 个答案:

答案 0 :(得分:1)

如果使用最新版本3.5.1(change是在3.5.0中创建的),它应该可以工作。

如果由于某种原因而无法升级,则可以通过以下方法仍然可以使用:1)从方法参数中删除@Param("user"),并2)如下直接引用这些字段。

<update id="update">
  update USERS
  <set>
    <if test="name != null">NAME=#{name},</if>
    <if test="age != null">AGE=#{age}</if>
  </set>
</update>

仅当bean(即User)是映射器方法的唯一参数时,直接属性引用才有效。