如果 sql 内不包含标签格式化没问题,比如下面这样
<select id="getShareRoleUserId" resultType="com.agt.technology.component.role.pojo.po.RoleUserItem">
SELECT r.id,
ur.user_id
FROM agt_cim_role r
JOIN agt_cim_user_role ur ON ur.role_id = r.id
WHERE deleted = 0
AND r.type = 3
</select>
但是如果包含标签的话,就会想下面一样把所有行都齐平了
<select id="getShareRoleUserId" resultType="com.agt.technology.component.role.pojo.po.RoleUserItem">
SELECT r.id,
ur.user_id
FROM agt_cim_role r
JOIN agt_cim_user_role ur ON ur.role_id = r.id
WHERE
deleted = 0
AND r.type = 3
<if test="roleIds != null">
AND r.id in
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
</select>
我试过同事的电脑也是这样,是不是我们配置出了什么问题,大佬们帮我看看你们的格式化会这样吗