feat: 增加主表,以增加快速查询

This commit is contained in:
wangyu 2022-11-11 16:10:27 +08:00
parent 9c16ca2a8d
commit 8329fd17a9
2 changed files with 30 additions and 0 deletions

View File

@ -41,6 +41,9 @@ final class SQLImpl extends ConcatSegment<SQLImpl> implements SQLOperations, Pre
// 调试标识 // 调试标识
private final boolean debug = false; private final boolean debug = false;
// 主表class默认是第一个from的表为主表
private Class<?> primaryClass;
/** /**
* 绑定实现类 * 绑定实现类
* *
@ -105,6 +108,7 @@ final class SQLImpl extends ConcatSegment<SQLImpl> implements SQLOperations, Pre
*/ */
@Override @Override
public HandleSqlChain from(Class<?> type, String alias) { public HandleSqlChain from(Class<?> type, String alias) {
this.primaryClass = type;
String mapped = AliasComposite.add(type, alias); String mapped = AliasComposite.add(type, alias);
return concat("FROM") return concat("FROM")
.concat(() -> EntityNameUtils.getTableName(type)) .concat(() -> EntityNameUtils.getTableName(type))
@ -176,6 +180,11 @@ final class SQLImpl extends ConcatSegment<SQLImpl> implements SQLOperations, Pre
} }
@Override
public <T> T one() {
return one(SqlNameUtils.cast(primaryClass));
}
/** /**
* 执行并获取结果 * 执行并获取结果
* *
@ -186,6 +195,11 @@ final class SQLImpl extends ConcatSegment<SQLImpl> implements SQLOperations, Pre
return SHARED_OPERATIONS.selectOne(entity(), clazz); return SHARED_OPERATIONS.selectOne(entity(), clazz);
} }
@Override
public <T> List<T> list() {
return list(SqlNameUtils.cast(primaryClass));
}
/** /**
* 执行并获取多条结果 * 执行并获取多条结果
* *

View File

@ -11,6 +11,14 @@ import java.util.List;
*/ */
public interface AfterOrderSqlChain extends ExecutableSql { public interface AfterOrderSqlChain extends ExecutableSql {
/**
* 执行并获取结果
*
* @param <T> 泛型
* @return 单一结果值
*/
<T> T one();
/** /**
* 执行并获取结果 * 执行并获取结果
* *
@ -20,6 +28,14 @@ public interface AfterOrderSqlChain extends ExecutableSql {
*/ */
<T> T one(Class<T> clazz); <T> T one(Class<T> clazz);
/**
* 执行并获取多条结果以主表class为结果
*
* @param <T> 结果泛型
* @return 结果列表
*/
<T> List<T> list();
/** /**
* 执行并获取多条结果 * 执行并获取多条结果
* *