为了账号安全,请及时绑定邮箱和手机立即绑定

insertBatchSomeColumn出现异常

前面多租户的代码我没有删,List

asList = Arrays.asList(user,user2); int insertBatchSomeColumn = userMapper.insertBatchSomeColumn(asList); 两个manag_id也没有给值,为什么出现column 'manager_id' specified twice的错误

正在回答

4 回答

       我明白是怎么回事了,官方就是这么设计的。insertBatchSome这个功能,如果你不排除某个字段的话,所有字段都会在Insert中。如果该字段为null也会给你添加到insert语句中。你的操作中,配置的多租户sql解析器区分租户的字段为manager_id在insert中会出现,还有一个是insertBatchSome给你加到insert中的manager_id它为null。所以在insert中出现两次,报这个错误。我有个解决办法。在自定义的sql注入器中这样写,把manager_id排除掉:

public class MySqlInjector extends DefaultSqlInjector {	
    @Override	
    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {		
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);		
        methodList.add(new InsertBatchSomeColumn(t ->!t.getColumn().equals("manager_id")));
        //...其他选装件或自定义方法
        return methodList;
    }
}


0 回复 有任何疑惑可以回复我~

你好,经过我验证,跟你的报错信息是一样的,应该是个bug,我现在反馈给官方。

0 回复 有任何疑惑可以回复我~
#1

weixin_慕婉清954930

我也遇到了
2021-01-05 回复 有任何疑惑可以回复我~
insertBatchSomeColumn

一直出现null Exception错误。

0 回复 有任何疑惑可以回复我~

666

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

insertBatchSomeColumn出现异常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信