diff --git a/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/SQLImpl.java b/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/SQLImpl.java index 207f346..a473e75 100644 --- a/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/SQLImpl.java +++ b/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/SQLImpl.java @@ -41,6 +41,9 @@ final class SQLImpl extends ConcatSegment implements SQLOperations, Pre // 调试标识 private final boolean debug = false; + // 主表class,默认是第一个from的表为主表 + private Class primaryClass; + /** * 绑定实现类 * @@ -105,6 +108,7 @@ final class SQLImpl extends ConcatSegment implements SQLOperations, Pre */ @Override public HandleSqlChain from(Class type, String alias) { + this.primaryClass = type; String mapped = AliasComposite.add(type, alias); return concat("FROM") .concat(() -> EntityNameUtils.getTableName(type)) @@ -176,6 +180,11 @@ final class SQLImpl extends ConcatSegment implements SQLOperations, Pre } + @Override + public T one() { + return one(SqlNameUtils.cast(primaryClass)); + } + /** * 执行并获取结果 * @@ -186,6 +195,11 @@ final class SQLImpl extends ConcatSegment implements SQLOperations, Pre return SHARED_OPERATIONS.selectOne(entity(), clazz); } + @Override + public List list() { + return list(SqlNameUtils.cast(primaryClass)); + } + /** * 执行并获取多条结果 * diff --git a/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/select/AfterOrderSqlChain.java b/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/select/AfterOrderSqlChain.java index f229ad6..c0673e0 100644 --- a/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/select/AfterOrderSqlChain.java +++ b/fluent-sql-core/src/main/java/group/flyfish/fluent/chain/select/AfterOrderSqlChain.java @@ -11,6 +11,14 @@ import java.util.List; */ public interface AfterOrderSqlChain extends ExecutableSql { + /** + * 执行并获取结果 + * + * @param 泛型 + * @return 单一结果值 + */ + T one(); + /** * 执行并获取结果 * @@ -20,6 +28,14 @@ public interface AfterOrderSqlChain extends ExecutableSql { */ T one(Class clazz); + /** + * 执行并获取多条结果,以主表class为结果 + * + * @param 结果泛型 + * @return 结果列表 + */ + List list(); + /** * 执行并获取多条结果 *