diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java index 0157e2ce..202163c1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/impl/CommonsDialectImpl.java @@ -316,6 +316,11 @@ public class CommonsDialectImpl implements IDialect { @Override public String buildSelectSql(QueryWrapper queryWrapper) { List queryTables = CPI.getQueryTables(queryWrapper); + + if (CollectionUtil.isEmpty(queryTables)) { + throw FlexExceptions.wrap("You must use the 'FROM' clause to select the table."); + } + List joinTables = CPI.getJoinTables(queryWrapper); List allTables = CollectionUtil.merge(queryTables, joinTables); @@ -332,6 +337,11 @@ public class CommonsDialectImpl implements IDialect { QueryColumn selectColumn = selectColumns.get(i); QueryTable selectColumnTable = selectColumn.getTable(); + // function 等没有对应的 selectColumnTable + if (selectColumnTable == null) { + continue; + } + //用户未配置别名的情况下,自动未用户添加别名 if (StringUtil.isBlank(selectColumn.getAlias()) && !(selectColumnTable instanceof SelectQueryTable)