使用mybatis动态sql时如何避免使用getter?

问题描述 投票:0回答:1

在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属性的getter,没有update语句,映射可以在不添加任何getter的情况下工作,有没有办法避免更新语句的getter?

mybatis
1个回答
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)是mapper方法的唯一参数时起作用。

© www.soinside.com 2019 - 2024. All rights reserved.