你使用的选装件是怎么配置的,我怀疑你选装件InsertBatchSomeColumn那配置的可能有问题,是不是很多字段都被你排除了?
我明白是怎么回事了,官方就是这么设计的。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; } }