diff --git a/src/org/redkale/source/DataJdbcSource.java b/src/org/redkale/source/DataJdbcSource.java index d27ff0d73..6f4920a7c 100644 --- a/src/org/redkale/source/DataJdbcSource.java +++ b/src/org/redkale/source/DataJdbcSource.java @@ -1915,6 +1915,48 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC return CompletableFuture.supplyAsync(() -> queryMap(clazz, null, keyStream), getExecutor()); } + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param bean FilterBean + * + * @return Entity的集合 + */ + @Override + public Map queryMap(final Class clazz, final FilterBean bean) { + return queryMap(clazz, null, bean); + } + + @Override + public CompletableFuture> queryMapAsync(final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryMap(clazz, null, bean), getExecutor()); + } + + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param node FilterNode + * + * @return Entity的集合 + */ + @Override + public Map queryMap(final Class clazz, final FilterNode node) { + return queryMap(clazz, null, node); + } + + @Override + public CompletableFuture> queryMapAsync(final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryMap(clazz, null, node), getExecutor()); + } + /** * 查询符合过滤条件记录的Map集合, 主键值为key
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1948,6 +1990,58 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC return CompletableFuture.supplyAsync(() -> queryMap(clazz, selects, keyStream), getExecutor()); } + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param bean FilterBean + * + * @return Entity的集合 + */ + @Override + public Map queryMap(final Class clazz, final SelectColumn selects, final FilterBean bean) { + return queryMap(clazz, selects, FilterNodeBean.createFilterNode(bean)); + } + + @Override + public CompletableFuture> queryMapAsync(final Class clazz, final SelectColumn selects, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryMap(clazz, selects, FilterNodeBean.createFilterNode(bean)), getExecutor()); + } + + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param node FilterNode + * + * @return Entity的集合 + */ + @Override + public Map queryMap(final Class clazz, final SelectColumn selects, final FilterNode node) { + final EntityInfo info = loadEntityInfo(clazz); + final Attribute primary = info.primary; + List rs = queryList(clazz, selects, node); + Map map = new LinkedHashMap<>(); + if (rs.isEmpty()) return new LinkedHashMap<>(); + for (T item : rs) { + map.put((K) primary.get(item), item); + } + return map; + } + + @Override + public CompletableFuture> queryMapAsync(final Class clazz, final SelectColumn selects, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryMap(clazz, selects, node), getExecutor()); + } + /** * 根据指定字段值查询对象集合 * diff --git a/src/org/redkale/source/DataSource.java b/src/org/redkale/source/DataSource.java index d035ce4e5..8994606ae 100644 --- a/src/org/redkale/source/DataSource.java +++ b/src/org/redkale/source/DataSource.java @@ -1519,6 +1519,58 @@ public interface DataSource { */ public CompletableFuture> queryMapAsync(final Class clazz, final Stream keyStream); + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param bean FilterBean + * + * @return Entity的集合 + */ + public Map queryMap(final Class clazz, final FilterBean bean); + + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param bean FilterBean + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryMapAsync(final Class clazz, final FilterBean bean); + + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param node FilterNode + * + * @return Entity的集合 + */ + public Map queryMap(final Class clazz, final FilterNode node); + + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param node FilterNode + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryMapAsync(final Class clazz, final FilterNode node); + /** * 查询符合过滤条件记录的Map集合, 主键值为key
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1547,6 +1599,62 @@ public interface DataSource { */ public CompletableFuture> queryMapAsync(final Class clazz, final SelectColumn selects, final Stream keyStream); + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param bean FilterBean + * + * @return Entity的集合 + */ + public Map queryMap(final Class clazz, final SelectColumn selects, final FilterBean bean); + + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param bean FilterBean + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryMapAsync(final Class clazz, final SelectColumn selects, FilterBean bean); + + /** + * 查询符合过滤条件记录的Map集合, 主键值为key
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param node FilterNode + * + * @return Entity的集合 + */ + public Map queryMap(final Class clazz, final SelectColumn selects, final FilterNode node); + + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param 主键泛型 + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param node FilterNode + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryMapAsync(final Class clazz, final SelectColumn selects, final FilterNode node); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}