扩展PageBean参数接口

This commit is contained in:
redkale
2024-04-01 11:38:16 +08:00
parent 665b295a96
commit 04a8c6f784
3 changed files with 188 additions and 9 deletions

View File

@@ -2630,7 +2630,8 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合CompletableFuture
*/
default <T, V extends Serializable> CompletableFuture<List<V>> queryColumnListAsync(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
default <T, V extends Serializable> CompletableFuture<List<V>> queryColumnListAsync(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterBean bean) {
return queryColumnListAsync(selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
}
@@ -2662,7 +2663,8 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合CompletableFuture
*/
public <T, V extends Serializable> CompletableFuture<List<V>> queryColumnListAsync(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterNode node);
public <T, V extends Serializable> CompletableFuture<List<V>> queryColumnListAsync(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterNode node);
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
@@ -2677,10 +2679,30 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合
*/
default <T, V extends Serializable> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
default <T, V extends Serializable> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterBean bean) {
return queryColumnSheet(selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <V> 字段类型
* @param <F> 过滤类型
* @param selectedColumn 指定字段
* @param clazz Entity类
* @param pageBean 过滤翻页条件
*
* @return 字段值的集合
*/
default <T, V extends Serializable, F extends FilterBean> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz,
final PageBean<F> pageBean) {
return queryColumnSheet(selectedColumn, clazz, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -2694,10 +2716,30 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合CompletableFuture
*/
default <T, V extends Serializable> CompletableFuture<Sheet<V>> queryColumnSheetAsync(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
default <T, V extends Serializable> CompletableFuture<Sheet<V>> queryColumnSheetAsync(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterBean bean) {
return queryColumnSheetAsync(selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <V> 字段类型
* @param <F> 过滤类型
* @param selectedColumn 指定字段
* @param clazz Entity类
* @param pageBean 过滤翻页条件
*
* @return 字段值的集合CompletableFuture
*/
default <T, V extends Serializable, F extends FilterBean> CompletableFuture<Sheet<V>> queryColumnSheetAsync(final String selectedColumn,
final Class<T> clazz, final PageBean<F> pageBean) {
return queryColumnSheetAsync(selectedColumn, clazz, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -2711,7 +2753,8 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合
*/
public <T, V extends Serializable> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterNode node);
public <T, V extends Serializable> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterNode node);
/**
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
@@ -2726,7 +2769,8 @@ public interface DataSource extends Resourcable {
*
* @return 字段值的集合CompletableFuture
*/
public <T, V extends Serializable> CompletableFuture<Sheet<V>> queryColumnSheetAsync(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterNode node);
public <T, V extends Serializable> CompletableFuture<Sheet<V>> queryColumnSheetAsync(final String selectedColumn, final Class<T> clazz,
final Flipper flipper, final FilterNode node);
/**
* 查询符合过滤条件记录的List转Map集合 key=主键值, value=Entity对象 <br>
@@ -3624,6 +3668,22 @@ public interface DataSource extends Resourcable {
return querySheet(clazz, (SelectColumn) null, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <F> 过滤类型
* @param clazz Entity类
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <T, F extends FilterBean> Sheet<T> querySheet(final Class<T> clazz, final PageBean<F> pageBean) {
return querySheet(clazz, (SelectColumn) null, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3639,6 +3699,22 @@ public interface DataSource extends Resourcable {
return querySheetAsync(clazz, (SelectColumn) null, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <F> 过滤类型
* @param clazz Entity类
* @param pageBean 过滤翻页条件
*
* @return Entity的集合CompletableFuture
*/
default <T, F extends FilterBean> CompletableFuture<Sheet<T>> querySheetAsync(final Class<T> clazz, final PageBean<F> pageBean) {
return querySheetAsync(clazz, (SelectColumn) null, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3685,6 +3761,23 @@ public interface DataSource extends Resourcable {
return querySheet(clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <F> 过滤类型
* @param clazz Entity类
* @param selects 指定字段
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <T, F extends FilterBean> Sheet<T> querySheet(final Class<T> clazz, final SelectColumn selects, final PageBean<F> pageBean) {
return querySheet(clazz, selects, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3701,6 +3794,23 @@ public interface DataSource extends Resourcable {
return querySheetAsync(clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
* @param <T> Entity泛型
* @param <F> 过滤类型
* @param clazz Entity类
* @param selects 指定字段
* @param pageBean 过滤翻页条件
*
* @return Entity的集合CompletableFuture
*/
default <T, F extends FilterBean> CompletableFuture<Sheet<T>> querySheetAsync(final Class<T> clazz, final SelectColumn selects, final PageBean<F> pageBean) {
return querySheetAsync(clazz, selects, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : FilterNodeBean.createFilterNode(pageBean.getBean()));
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>

View File

@@ -10,11 +10,11 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
import org.redkale.annotation.ClassDepends;
import org.redkale.util.LambdaFunction;
import org.redkale.util.LambdaSupplier;
import org.redkale.util.SelectColumn;
import org.redkale.util.Sheet;
import org.redkale.annotation.ClassDepends;
/**
* 类似Mybatis的Mapper接口类, 接口系列和DataSource相似度高 <br>
@@ -3204,6 +3204,21 @@ public interface DataSqlMapper<T> {
return dataSource().querySheet(entityType(), flipper, bean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
*
*
* @param <F> 过滤类型
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <F extends FilterBean> Sheet<T> querySheet(PageBean<F> pageBean) {
return dataSource().querySheet(entityType(), pageBean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3219,6 +3234,21 @@ public interface DataSqlMapper<T> {
return dataSource().querySheetAsync(entityType(), flipper, bean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
*
*
* @param <F> 过滤类型
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <F extends FilterBean> CompletableFuture<Sheet<T>> querySheetAsync(PageBean<F> pageBean) {
return dataSource().querySheetAsync(entityType(), pageBean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3265,6 +3295,21 @@ public interface DataSqlMapper<T> {
return dataSource().querySheet(entityType(), selects, flipper, bean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
*
* @param <F> 过滤类型
* @param selects 指定字段
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <F extends FilterBean> Sheet<T> querySheet(SelectColumn selects, PageBean<F> pageBean) {
return dataSource().querySheet(entityType(), selects, pageBean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
@@ -3281,6 +3326,21 @@ public interface DataSqlMapper<T> {
return dataSource().querySheetAsync(entityType(), selects, flipper, bean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
*
*
* @param <F> 过滤类型
* @param selects 指定字段
* @param pageBean 过滤翻页条件
*
* @return Entity的集合
*/
default <F extends FilterBean> CompletableFuture<Sheet<T>> querySheetAsync(SelectColumn selects, PageBean<F> pageBean) {
return dataSource().querySheetAsync(entityType(), selects, pageBean);
}
/**
* 查询符合过滤条件记录的Sheet集合 <br>
* 等价SQL: SELECT {column1},{column2}, &#183;&#183;&#183; FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>

View File

@@ -7,9 +7,9 @@ import java.io.Serializable;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.*;
import org.redkale.annotation.ClassDepends;
import static org.redkale.source.DataResultSet.formatColumnValue;
import org.redkale.util.*;
import org.redkale.annotation.ClassDepends;
/**
*
@@ -269,7 +269,7 @@ public interface DataSqlSource extends DataSource {
@ClassDepends
default <V> CompletableFuture<List<V>> nativeQueryListAsync(Class<V> type, String sql, Map<String, Object> params) {
return nativeQueryAsync(sql, rset -> {
if (EntityBuilder.isSimpleType(type)) {
if (EntityBuilder.isSimpleType(type)) {
List<V> list = new ArrayList<>();
while (rset.next()) {
list.add(rset.wasNull() ? null : (V) formatColumnValue(type, rset.getObject(1)));
@@ -387,4 +387,13 @@ public interface DataSqlSource extends DataSource {
return nativeQuerySheetAsync(type, sql, flipper, (Map<String, Object>) Copier.copyToMap(bean, Copier.OPTION_SKIP_NULL_VALUE));
}
default <V> Sheet<V> nativeQuerySheet(Class<V> type, String sql, PageBean pageBean) {
return nativeQuerySheet(type, sql, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : (Map<String, Object>) Copier.copyToMap(pageBean.getBean(), Copier.OPTION_SKIP_NULL_VALUE));
}
default <V> CompletableFuture<Sheet<V>> nativeQuerySheetAsync(Class<V> type, String sql, PageBean pageBean) {
return nativeQuerySheetAsync(type, sql, pageBean == null ? null : pageBean.getFlipper(),
pageBean == null ? null : (Map<String, Object>) Copier.copyToMap(pageBean.getBean(), Copier.OPTION_SKIP_NULL_VALUE));
}
}