shardingsphere 4.0.1版本寫操作不支持多表關聯 Cannot support Multiple-Table for xxx

  • 詳情見class = StandardRoutingEngine.java
  • package org.apache.shardingsphere.core.route.type.standard;
    public RoutingResult route() {
		// 如果是寫操作,並且操作的不是單個表的話,拋出異常 Cannot support Multiple-Table for xxx
        if (this.isDMLForModify(this.sqlStatementContext.getSqlStatement()) && !this.sqlStatementContext.getTablesContext().isSingleTable()) {
            throw new ShardingException("Cannot support Multiple-Table for '%s'.", new Object[]{this.sqlStatementContext.getSqlStatement()});
        } else {
            return this.generateRoutingResult(this.getDataNodes(this.shardingRule.getTableRule(this.logicTableName)));
        }
    }

    private boolean isDMLForModify(SQLStatement sqlStatement) {
        return sqlStatement instanceof InsertStatement || sqlStatement instanceof UpdateStatement || sqlStatement instanceof DeleteStatement;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章