|
@@ -18,8 +18,10 @@ package com.baomidou.mybatisplus.extension.plugins.tenant;
|
|
import com.baomidou.mybatisplus.core.parser.AbstractJsqlParser;
|
|
import com.baomidou.mybatisplus.core.parser.AbstractJsqlParser;
|
|
import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.EqualsAndHashCode;
|
|
|
|
+import lombok.NoArgsConstructor;
|
|
import lombok.experimental.Accessors;
|
|
import lombok.experimental.Accessors;
|
|
import net.sf.jsqlparser.expression.BinaryExpression;
|
|
import net.sf.jsqlparser.expression.BinaryExpression;
|
|
import net.sf.jsqlparser.expression.Expression;
|
|
import net.sf.jsqlparser.expression.Expression;
|
|
@@ -43,6 +45,8 @@ import java.util.List;
|
|
* @since 2017-09-01
|
|
* @since 2017-09-01
|
|
*/
|
|
*/
|
|
@Data
|
|
@Data
|
|
|
|
+@NoArgsConstructor
|
|
|
|
+@AllArgsConstructor
|
|
@Accessors(chain = true)
|
|
@Accessors(chain = true)
|
|
@EqualsAndHashCode(callSuper = true)
|
|
@EqualsAndHashCode(callSuper = true)
|
|
public class TenantSqlParser extends AbstractJsqlParser {
|
|
public class TenantSqlParser extends AbstractJsqlParser {
|
|
@@ -154,12 +158,11 @@ public class TenantSqlParser extends AbstractJsqlParser {
|
|
FromItem fromItem = plainSelect.getFromItem();
|
|
FromItem fromItem = plainSelect.getFromItem();
|
|
if (fromItem instanceof Table) {
|
|
if (fromItem instanceof Table) {
|
|
Table fromTable = (Table) fromItem;
|
|
Table fromTable = (Table) fromItem;
|
|
- if (!this.getTenantHandler().doTableFilter(fromTable.getName())) {
|
|
|
|
|
|
+ if (!tenantHandler.doTableFilter(fromTable.getName())) {
|
|
//#1186 github
|
|
//#1186 github
|
|
plainSelect.setWhere(builderExpression(plainSelect.getWhere(), fromTable));
|
|
plainSelect.setWhere(builderExpression(plainSelect.getWhere(), fromTable));
|
|
if (addColumn) {
|
|
if (addColumn) {
|
|
- plainSelect.getSelectItems().add(new SelectExpressionItem(
|
|
|
|
- new Column(this.getTenantHandler().getTenantIdColumn())));
|
|
|
|
|
|
+ plainSelect.getSelectItems().add(new SelectExpressionItem(new Column(tenantHandler.getTenantIdColumn())));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -224,7 +227,7 @@ public class TenantSqlParser extends AbstractJsqlParser {
|
|
* 默认tenantId的表达式: LongValue(1)这种依旧支持
|
|
* 默认tenantId的表达式: LongValue(1)这种依旧支持
|
|
*/
|
|
*/
|
|
protected Expression builderExpression(Expression currentExpression, Table table) {
|
|
protected Expression builderExpression(Expression currentExpression, Table table) {
|
|
- final Expression tenantExpression = this.getTenantHandler().getTenantId(false);
|
|
|
|
|
|
+ final Expression tenantExpression = tenantHandler.getTenantId(false);
|
|
Expression appendExpression;
|
|
Expression appendExpression;
|
|
if (!(tenantExpression instanceof SupportsOldOracleJoinSyntax)) {
|
|
if (!(tenantExpression instanceof SupportsOldOracleJoinSyntax)) {
|
|
appendExpression = new EqualsTo();
|
|
appendExpression = new EqualsTo();
|