From 500545fc93d57f8801e59c137d5b863f4e01ffbc Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Mon, 30 Oct 2017 09:49:34 +0800 Subject: [PATCH] =?UTF-8?q?DataSource.queryMap=E9=87=8D=E8=BD=BD=E4=BA=86F?= =?UTF-8?q?ilterBean=E3=80=81FilterNode=E5=8F=82=E6=95=B0=E7=AD=89?= =?UTF-8?q?=E7=B3=BB=E5=88=97=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/source/DataJdbcSource.java | 94 ++++++++++++++++++ src/org/redkale/source/DataSource.java | 108 +++++++++++++++++++++ 2 files changed, 202 insertions(+) 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}