springboot - 这奇怪的自动拼接sql?

 

问题描述:

这是一段钉钉登录的代码,获取到当前用户的手机号后,然后按手机号去用户表去查
image.png
控制台的信息是这样
image.png

他为何无缘无故给我拼接了个 AND id = 226,正常的登录是不会拼接这个的
当前用户在用户表里id也不是226

这个错误是偶发性错误,我换了个钉钉这个用户又正常。。。

求教可能什么原因?

补充-------------------
追踪了userService.getUserByUsername(mobile)的代码最终到了:

    default AdminUserDO selectByUsername(String username) {
        return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getUsername, username));
    }

问题貌似归结于:mybatis-plus自动拼接了非wrapper条件,有个类似的,但检查了又不是

@TableName(value = "system_users", autoResultMap = true) 
@KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AdminUserDO extends TenantBaseDO {

    /**
     * 用户ID
     */
    @TableId
    private Long id;
    /**
     * 用户账号
     */
    private String username;
....

 

第 1 个答案:

这种东西,就是底层的逻辑了,是不是存在mybatis的插件


vue.js - Vue2源码resolveConstructorOptions函数?:在resolveConstructorOptions函数里,会比较superOptions和cachedSuperOptions是否相等,通过Vue.e ...