miemie 6 лет назад
Родитель
Сommit
a556d0c738

+ 7 - 15
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/tenant/TenantSqlParser.java

@@ -15,13 +15,10 @@
  */
 package com.baomidou.mybatisplus.extension.plugins.tenant;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.parser.AbstractJsqlParser;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -35,19 +32,11 @@ import net.sf.jsqlparser.schema.Column;
 import net.sf.jsqlparser.schema.Table;
 import net.sf.jsqlparser.statement.delete.Delete;
 import net.sf.jsqlparser.statement.insert.Insert;
-import net.sf.jsqlparser.statement.select.FromItem;
-import net.sf.jsqlparser.statement.select.Join;
-import net.sf.jsqlparser.statement.select.LateralSubSelect;
-import net.sf.jsqlparser.statement.select.PlainSelect;
-import net.sf.jsqlparser.statement.select.SelectBody;
-import net.sf.jsqlparser.statement.select.SelectExpressionItem;
-import net.sf.jsqlparser.statement.select.SetOperationList;
-import net.sf.jsqlparser.statement.select.SubJoin;
-import net.sf.jsqlparser.statement.select.SubSelect;
-import net.sf.jsqlparser.statement.select.ValuesList;
-import net.sf.jsqlparser.statement.select.WithItem;
+import net.sf.jsqlparser.statement.select.*;
 import net.sf.jsqlparser.statement.update.Update;
 
+import java.util.List;
+
 /**
  * 租户 SQL 解析器( TenantId 行级 )
  *
@@ -260,7 +249,10 @@ public class TenantSqlParser extends AbstractJsqlParser {
                 // fix github 1201
                 if (expression instanceof InExpression) {
                     InExpression inExp = (InExpression) expression;
-                    processSelectBody(((SubSelect) inExp.getRightItemsList()).getSelectBody());
+                    ItemsList rightItems = inExp.getRightItemsList();
+                    if (rightItems instanceof SubSelect) {
+                        processSelectBody(((SubSelect) rightItems).getSelectBody());
+                    }
                 }
                 return new AndExpression(equalsTo, expression);
             }