diff --git a/src/org/redkale/boot/NodeServer.java b/src/org/redkale/boot/NodeServer.java index 240f08193..7a9ee76e4 100644 --- a/src/org/redkale/boot/NodeServer.java +++ b/src/org/redkale/boot/NodeServer.java @@ -116,7 +116,7 @@ public abstract class NodeServer { if (context == null) { t.run(); } else { - context.submit(t); + context.submitAsync(t); } } diff --git a/src/org/redkale/net/Context.java b/src/org/redkale/net/Context.java index ea4edacbd..9f40fe58c 100644 --- a/src/org/redkale/net/Context.java +++ b/src/org/redkale/net/Context.java @@ -109,8 +109,12 @@ public class Context { return charset; } - public void submit(Runnable r) { - executor.submit(r); + public Future submitAsync(Runnable r) { + return executor.submit(r); + } + + public void runAsync(Runnable r) { + executor.execute(r); } public int getBufferCapacity() { diff --git a/src/org/redkale/net/ProtocolServer.java b/src/org/redkale/net/ProtocolServer.java index 5a8c17e53..5003c6e6d 100644 --- a/src/org/redkale/net/ProtocolServer.java +++ b/src/org/redkale/net/ProtocolServer.java @@ -92,7 +92,7 @@ public abstract class ProtocolServer { SocketAddress address = serchannel.receive(buffer); buffer.flip(); AsyncConnection conn = AsyncConnection.create(serchannel, address, false, readTimeoutSecond, writeTimeoutSecond); - context.submit(new PrepareRunner(context, conn, buffer)); + context.runAsync(new PrepareRunner(context, conn, buffer)); } catch (Exception e) { context.offerBuffer(buffer); } @@ -160,7 +160,7 @@ public abstract class ProtocolServer { @Override public void completed(final AsynchronousSocketChannel channel, Void attachment) { serchannel.accept(null, this); - context.submit(new PrepareRunner(context, AsyncConnection.create(channel, null, context.readTimeoutSecond, context.writeTimeoutSecond), null)); + context.submitAsync(new PrepareRunner(context, AsyncConnection.create(channel, null, context.readTimeoutSecond, context.writeTimeoutSecond), null)); } @Override diff --git a/src/org/redkale/net/Response.java b/src/org/redkale/net/Response.java index eb34bf281..7504b2ede 100644 --- a/src/org/redkale/net/Response.java +++ b/src/org/redkale/net/Response.java @@ -117,7 +117,7 @@ public abstract class Response> { request.recycle(); if (channel != null) { if (keepAlive) { - this.context.submit(new PrepareRunner(context, channel, null)); + this.context.runAsync(new PrepareRunner(context, channel, null)); } else { try { if (channel.isOpen()) channel.close(); diff --git a/src/org/redkale/net/WorkThread.java b/src/org/redkale/net/WorkThread.java index 150903f81..32eb3be3f 100644 --- a/src/org/redkale/net/WorkThread.java +++ b/src/org/redkale/net/WorkThread.java @@ -25,8 +25,8 @@ public class WorkThread extends Thread { this.setDaemon(true); } - public Future submit(Runnable runner) { - return executor.submit(runner); + public void runAsync(Runnable runner) { + executor.execute(runner); } public ExecutorService getExecutor() { diff --git a/src/org/redkale/net/http/WebSocketServlet.java b/src/org/redkale/net/http/WebSocketServlet.java index 40bce9686..ebaaf928e 100644 --- a/src/org/redkale/net/http/WebSocketServlet.java +++ b/src/org/redkale/net/http/WebSocketServlet.java @@ -146,7 +146,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl } webSocket._groupid = groupid; engine.add(webSocket); - context.submit(new WebSocketRunner(context, webSocket, response.removeChannel(), wsbinary)); + context.runAsync(new WebSocketRunner(context, webSocket, response.removeChannel(), wsbinary)); response.finish(true); } diff --git a/src/org/redkale/service/AbstractService.java b/src/org/redkale/service/AbstractService.java index e561b39f0..0fe48c98a 100644 --- a/src/org/redkale/service/AbstractService.java +++ b/src/org/redkale/service/AbstractService.java @@ -14,12 +14,13 @@ import org.redkale.net.WorkThread; */ public abstract class AbstractService implements Service { - protected Future submit(Runnable runner) { + protected void execute(Runnable runner) { Thread thread = Thread.currentThread(); if (thread instanceof WorkThread) { - return ((WorkThread) thread).submit(runner); + ((WorkThread) thread).runAsync(runner); + } else { + ForkJoinPool.commonPool().execute(runner); } - return ForkJoinPool.commonPool().submit(runner); } protected ExecutorService getExecutor() { diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index 71f5696b1..c4606d9f3 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -197,9 +197,7 @@ public class CacheMemorySource extends @Override public CompletableFuture existsAsync(final K key) { - CompletableFuture future = new CompletableFuture(); - future.complete(exists(key)); - return future; + return CompletableFuture.supplyAsync(() -> exists(key)); } @Override @@ -220,9 +218,7 @@ public class CacheMemorySource extends @Override public CompletableFuture getAsync(final K key) { - CompletableFuture future = new CompletableFuture(); - future.complete(get(key)); - return future; + return CompletableFuture.supplyAsync(() -> get(key)); } @Override @@ -246,9 +242,7 @@ public class CacheMemorySource extends @Override public CompletableFuture getAndRefreshAsync(final K key, final int expireSeconds) { - CompletableFuture future = new CompletableFuture(); - future.complete(getAndRefresh(key, expireSeconds)); - return future; + return CompletableFuture.supplyAsync(() -> getAndRefresh(key, expireSeconds)); } @Override @@ -269,10 +263,7 @@ public class CacheMemorySource extends @Override public CompletableFuture refreshAsync(final K key, final int expireSeconds) { - CompletableFuture future = new CompletableFuture(); - refresh(key, expireSeconds); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> refresh(key, expireSeconds)); } @Override @@ -298,10 +289,7 @@ public class CacheMemorySource extends @Override public CompletableFuture setAsync(K key, V value) { - CompletableFuture future = new CompletableFuture(); - set(key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> set(key, value)); } @Override @@ -327,10 +315,7 @@ public class CacheMemorySource extends @Override public CompletableFuture setAsync(int expireSeconds, K key, V value) { - CompletableFuture future = new CompletableFuture(); - set(expireSeconds, key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> set(expireSeconds, key, value)); } @Override @@ -350,10 +335,7 @@ public class CacheMemorySource extends @Override public CompletableFuture setExpireSecondsAsync(final K key, final int expireSeconds) { - CompletableFuture future = new CompletableFuture(); - setExpireSeconds(key, expireSeconds); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> setExpireSeconds(key, expireSeconds)); } @Override @@ -371,10 +353,7 @@ public class CacheMemorySource extends @Override public CompletableFuture removeAsync(final K key) { - CompletableFuture future = new CompletableFuture(); - remove(key); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> remove(key)); } @Override @@ -390,9 +369,7 @@ public class CacheMemorySource extends @Override public CompletableFuture> getCollectionAsync(final K key) { - CompletableFuture> future = new CompletableFuture(); - future.complete((Collection) get(key)); - return future; + return CompletableFuture.supplyAsync(() -> getCollection(key)); } @Override @@ -408,9 +385,7 @@ public class CacheMemorySource extends @Override public CompletableFuture> getCollectionAndRefreshAsync(final K key, final int expireSeconds) { - CompletableFuture> future = new CompletableFuture(); - future.complete((Collection) getAndRefresh(key, expireSeconds)); - return future; + return CompletableFuture.supplyAsync(() -> getCollectionAndRefresh(key, expireSeconds)); } @Override @@ -437,10 +412,7 @@ public class CacheMemorySource extends @Override public CompletableFuture appendListItemAsync(final K key, final V value) { - CompletableFuture future = new CompletableFuture(); - appendListItem(key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> appendListItem(key, value)); } @Override @@ -460,10 +432,7 @@ public class CacheMemorySource extends @Override public CompletableFuture removeListItemAsync(final K key, final V value) { - CompletableFuture future = new CompletableFuture(); - removeListItem(key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> removeListItem(key, value)); } @Override @@ -490,10 +459,7 @@ public class CacheMemorySource extends @Override public CompletableFuture appendSetItemAsync(final K key, final V value) { - CompletableFuture future = new CompletableFuture(); - appendSetItem(key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> appendSetItem(key, value)); } @Override @@ -513,10 +479,7 @@ public class CacheMemorySource extends @Override public CompletableFuture removeSetItemAsync(final K key, final V value) { - CompletableFuture future = new CompletableFuture(); - removeSetItem(key, value); - future.complete(null); - return future; + return CompletableFuture.runAsync(() -> removeSetItem(key, value)); } @Override diff --git a/src/org/redkale/source/DataJdbcSource.java b/src/org/redkale/source/DataJdbcSource.java index 5c93fd469..378f5735b 100644 --- a/src/org/redkale/source/DataJdbcSource.java +++ b/src/org/redkale/source/DataJdbcSource.java @@ -9,6 +9,7 @@ import java.io.*; import java.net.URL; import java.sql.*; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.*; import java.util.logging.*; @@ -144,6 +145,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture insertAsync(@RpcCall(DataCallArrayAttribute.class) T... values) { + return CompletableFuture.runAsync(() -> insert(values)); + } + @Override public void insertAsync(final AsyncHandler handler, @RpcAttachment @RpcCall(DataCallArrayAttribute.class) final T... values) { insert(values); @@ -323,6 +329,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture deleteAsync(final T... values) { + return CompletableFuture.supplyAsync(() -> delete(values)); + } + @Override public void deleteAsync(final AsyncHandler handler, @RpcAttachment final T... values) { int rs = delete(values); @@ -354,6 +365,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture deleteAsync(final Class clazz, final Serializable... ids) { + return CompletableFuture.supplyAsync(() -> delete(clazz, ids)); + } + @Override public void deleteAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final Serializable... ids) { int rs = delete(clazz, ids); @@ -408,6 +424,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture deleteAsync(final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> delete(clazz, node)); + } + @Override public void deleteAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final FilterNode node) { int rs = delete(clazz, node); @@ -428,6 +449,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture deleteAsync(final Class clazz, final Flipper flipper, FilterNode node) { + return CompletableFuture.supplyAsync(() -> delete(clazz, flipper, node)); + } + @Override public void deleteAsync(final AsyncHandler handler, final Class clazz, final Flipper flipper, @RpcAttachment FilterNode node) { int rs = delete(clazz, flipper, node); @@ -451,7 +477,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } String sql = "DELETE " + (this.readPool.isMysql() ? "a" : "") + " FROM " + info.getTable(node) + " a" + (join1 == null ? "" : (", " + join1)) + ((where == null || where.length() == 0) ? (join2 == null ? "" : (" WHERE " + join2)) - : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))) + info.createSQLOrderby(flipper) + : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))) + info.createSQLOrderby(flipper) + ((flipper == null || flipper.getLimit() < 1) ? "" : (" LIMIT " + flipper.getLimit())); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(info.getType().getSimpleName() + " delete sql=" + sql); conn.setReadOnly(false); @@ -520,6 +546,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateAsync(final T... values) { + return CompletableFuture.supplyAsync(() -> update(values)); + } + @Override public void updateAsync(final AsyncHandler handler, @RpcAttachment final T... values) { int rs = update(values); @@ -617,6 +648,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnupdateColumnAsync(final Class clazz, final Serializable id, final String column, final Serializable value) { + return CompletableFuture.supplyAsync(() -> updateColumn(clazz, id, column, value)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final Class clazz, final Serializable id, final String column, final Serializable value) { int rs = updateColumn(clazz, id, column, value); @@ -685,6 +721,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final Class clazz, final String column, final Serializable value, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> updateColumn(clazz, column, value, node)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final Class clazz, final String column, final Serializable value, @RpcAttachment final FilterNode node) { int rs = updateColumn(clazz, column, value, node); @@ -710,7 +751,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi String sql = "UPDATE " + info.getTable(node) + " a " + (join1 == null ? "" : (", " + join1)) + " SET " + info.getSQLColumn("a", column) + " = ?" + ((where == null || where.length() == 0) ? (join2 == null ? "" : (" WHERE " + join2)) - : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); + : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(info.getType().getSimpleName() + " update sql=" + sql); conn.setReadOnly(false); Blob blob = conn.createBlob(); @@ -723,7 +764,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi String sql = "UPDATE " + info.getTable(node) + " a " + (join1 == null ? "" : (", " + join1)) + " SET " + info.getSQLColumn("a", column) + " = " + info.formatToString(value) + ((where == null || where.length() == 0) ? (join2 == null ? "" : (" WHERE " + join2)) - : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); + : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(info.getType().getSimpleName() + " update sql=" + sql); conn.setReadOnly(false); final Statement stmt = conn.createStatement(); @@ -768,6 +809,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final Class clazz, final Serializable id, final ColumnValue... values) { + return CompletableFuture.supplyAsync(() -> updateColumn(clazz, id, values)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final Serializable id, final ColumnValue... values) { int rs = updateColumn(clazz, id, values); @@ -855,6 +901,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final ColumnValue... values) { + return CompletableFuture.supplyAsync(() -> updateColumn(clazz, node, values)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final FilterNode node, final ColumnValue... values) { int rs = updateColumn(clazz, node, values); @@ -886,6 +937,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValue... values) { + return CompletableFuture.supplyAsync(() -> updateColumn(clazz, node, flipper, values)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final FilterNode node, final Flipper flipper, final ColumnValue... values) { int rs = updateColumn(clazz, node, flipper, values); @@ -931,7 +987,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } String sql = "UPDATE " + info.getTable(node) + " a " + (join1 == null ? "" : (", " + join1)) + " SET " + setsql + ((where == null || where.length() == 0) ? (join2 == null ? "" : (" WHERE " + join2)) - : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); + : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); //注:LIMIT 仅支持MySQL 且在多表关联式会异常, 该BUG尚未解决 sql += info.createSQLOrderby(flipper) + ((flipper == null || flipper.getLimit() < 1) ? "" : (" LIMIT " + flipper.getLimit())); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(info.getType().getSimpleName() + " update sql=" + sql); @@ -968,12 +1024,33 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return updateColumn(bean, SelectColumn.createIncludes(columns)); } + @Override + public CompletableFuture updateColumnAsync(final T bean, final String... columns) { + return CompletableFuture.supplyAsync(() -> updateColumn(bean, columns)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, @RpcAttachment final T bean, final String... columns) { int rs = updateColumn(bean, columns); if (handler != null) handler.completed(rs, bean); } + @Override + public int updateColumn(final T bean, final FilterNode node, final String... columns) { + return updateColumn(bean, node, SelectColumn.createIncludes(columns)); + } + + @Override + public CompletableFuture updateColumnAsync(final T bean, final FilterNode node, final String... columns) { + return CompletableFuture.supplyAsync(() -> updateColumn(bean, node, columns)); + } + + @Override + public void updateColumnAsync(final AsyncHandler handler, final T bean, @RpcAttachment final FilterNode node, final String... columns) { + int rs = updateColumn(bean, node, columns); + if (handler != null) handler.completed(rs, node); + } + @Override public int updateColumn(final T bean, final SelectColumn selects) { final EntityInfo info = loadEntityInfo((Class) bean.getClass()); @@ -988,6 +1065,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final T bean, final SelectColumn selects) { + return CompletableFuture.supplyAsync(() -> updateColumn(bean, selects)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, @RpcAttachment final T bean, final SelectColumn selects) { int rs = updateColumn(bean, selects); @@ -1051,17 +1133,6 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } - @Override - public int updateColumn(final T bean, final FilterNode node, final String... columns) { - return updateColumn(bean, node, SelectColumn.createIncludes(columns)); - } - - @Override - public void updateColumnAsync(final AsyncHandler handler, final T bean, @RpcAttachment final FilterNode node, final String... columns) { - int rs = updateColumn(bean, node, columns); - if (handler != null) handler.completed(rs, node); - } - @Override public int updateColumn(final T bean, final FilterNode node, final SelectColumn selects) { final EntityInfo info = loadEntityInfo((Class) bean.getClass()); @@ -1076,6 +1147,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture updateColumnAsync(final T bean, final FilterNode node, final SelectColumn selects) { + return CompletableFuture.supplyAsync(() -> updateColumn(bean, node, selects)); + } + @Override public void updateColumnAsync(final AsyncHandler handler, final T bean, @RpcAttachment final FilterNode node, final SelectColumn selects) { int rs = updateColumn(bean, node, selects); @@ -1121,7 +1197,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } String sql = "UPDATE " + info.getTable(node) + " a " + (join1 == null ? "" : (", " + join1)) + " SET " + setsql + ((where == null || where.length() == 0) ? (join2 == null ? "" : (" WHERE " + join2)) - : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); + : (" WHERE " + where + (join2 == null ? "" : (" AND " + join2)))); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(info.getType().getSimpleName() + " update sql=" + sql); conn.setReadOnly(false); if (blobs != null) { @@ -1184,6 +1260,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberResult(entityClass, func, null, column, (FilterNode) null); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, column)); + } + @Override public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, @RpcAttachment final String column) { Number rs = getNumberResult(entityClass, func, column); @@ -1195,6 +1276,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberResult(entityClass, func, null, column, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, column, bean)); + } + @Override public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final String column, @RpcAttachment final B bean) { Number rs = getNumberResult(entityClass, func, column, bean); @@ -1206,6 +1292,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberResult(entityClass, func, null, column, node); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, column, node)); + } + @Override public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final String column, @RpcAttachment final FilterNode node) { Number rs = getNumberResult(entityClass, func, column, node); @@ -1217,6 +1308,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberResult(entityClass, func, defVal, column, (FilterNode) null); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, defVal, column)); + } + @Override public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column) { Number rs = getNumberResult(entityClass, func, defVal, column); @@ -1228,16 +1324,37 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberResult(entityClass, func, defVal, column, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, defVal, column, bean)); + } + @Override public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column, final FilterBean bean) { getNumberResultAsync(handler, entityClass, func, defVal, column, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> getNumberResult(entityClass, func, defVal, column, node)); + } + + @Override + public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column, final FilterNode node) { + Number rs = getNumberResult(entityClass, func, defVal, column, node); + if (handler != null) handler.completed(rs, column); + } + @Override public Map getNumberMap(final Class entityClass, final FilterFuncColumn... columns) { return getNumberMap(entityClass, (FilterNode) null, columns); } + @Override + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterFuncColumn... columns) { + return CompletableFuture.supplyAsync(() -> getNumberMap(entityClass, columns)); + } + @Override public void getNumberMapAsync(final AsyncHandler, FilterFuncColumn[]> handler, final Class entityClass, @RpcAttachment final FilterFuncColumn... columns) { Map rs = getNumberMap(entityClass, columns); @@ -1249,6 +1366,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return getNumberMap(entityClass, FilterNodeBean.createFilterNode(bean), columns); } + @Override + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterBean bean, final FilterFuncColumn... columns) { + return CompletableFuture.supplyAsync(() -> getNumberMap(entityClass, bean, columns)); + } + @Override public void getNumberMapAsync(final AsyncHandler, B> handler, final Class entityClass, @RpcAttachment final B bean, final FilterFuncColumn... columns) { Map rs = getNumberMap(entityClass, bean, columns); @@ -1320,6 +1442,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterNode node, final FilterFuncColumn... columns) { + return CompletableFuture.supplyAsync(() -> getNumberMap(entityClass, node, columns)); + } + @Override public void getNumberMapAsync(final AsyncHandler, FilterNode> handler, final Class entityClass, @RpcAttachment final FilterNode node, final FilterFuncColumn... columns) { Map rs = getNumberMap(entityClass, node, columns); @@ -1363,18 +1490,17 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } - @Override - public void getNumberResultAsync(final AsyncHandler handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column, final FilterNode node) { - Number rs = getNumberResult(entityClass, func, defVal, column, node); - if (handler != null) handler.completed(rs, column); - } - //-----------------------queryColumnMapAsync----------------------------- @Override public Map queryColumnMap(final Class entityClass, final String keyColumn, FilterFunc func, final String funcColumn) { return queryColumnMap(entityClass, keyColumn, func, funcColumn, (FilterNode) null); } + @Override + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn) { + return CompletableFuture.supplyAsync(() -> queryColumnMap(entityClass, keyColumn, func, funcColumn)); + } + @Override public void queryColumnMapAsync(final AsyncHandler, String> handler, final Class entityClass, @RpcAttachment final String keyColumn, final FilterFunc func, final String funcColumn) { Map rs = queryColumnMap(entityClass, keyColumn, func, funcColumn); @@ -1386,6 +1512,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnMap(entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryColumnMap(entityClass, keyColumn, func, funcColumn, bean)); + } + @Override public void queryColumnMapAsync(final AsyncHandler, String> handler, final Class entityClass, @RpcAttachment final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) { queryColumnMapAsync(handler, entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean)); @@ -1430,6 +1561,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryColumnMap(entityClass, keyColumn, func, funcColumn, node)); + } + @Override public void queryColumnMapAsync(final AsyncHandler, String> handler, final Class entityClass, @RpcAttachment final String keyColumn, final FilterFunc func, final String funcColumn, final FilterNode node) { Map rs = queryColumnMap(entityClass, keyColumn, func, funcColumn, node); @@ -1451,6 +1587,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return find(clazz, (SelectColumn) null, pk); } + @Override + public CompletableFuture findAsync(final Class clazz, final Serializable pk) { + return CompletableFuture.supplyAsync(() -> find(clazz, pk)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final Serializable pk) { T rs = find(clazz, pk); @@ -1489,6 +1630,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final Serializable pk) { + return CompletableFuture.supplyAsync(() -> find(clazz, selects, pk)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, SelectColumn selects, @RpcAttachment final Serializable pk) { T rs = find(clazz, selects, pk); @@ -1500,6 +1646,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return find(clazz, null, FilterNode.create(column, key)); } + @Override + public CompletableFuture findAsync(final Class clazz, final String column, final Serializable key) { + return CompletableFuture.supplyAsync(() -> find(clazz, column, key)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, final String column, @RpcAttachment final Serializable key) { T rs = find(clazz, column, key); @@ -1511,6 +1662,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return find(clazz, null, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture findAsync(final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> find(clazz, bean)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final B bean) { T rs = find(clazz, bean); @@ -1522,6 +1678,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return find(clazz, null, node); } + @Override + public CompletableFuture findAsync(final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> find(clazz, node)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final FilterNode node) { T rs = find(clazz, node); @@ -1533,6 +1694,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return find(clazz, selects, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> find(clazz, selects, bean)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, final SelectColumn selects, @RpcAttachment final B bean) { T rs = find(clazz, selects, bean); @@ -1571,6 +1737,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> find(clazz, selects, node)); + } + @Override public void findAsync(final AsyncHandler handler, final Class clazz, final SelectColumn selects, @RpcAttachment final FilterNode node) { T rs = find(clazz, selects, node); @@ -1582,6 +1753,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return findColumn(clazz, column, null, pk); } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable pk) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, pk)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, @RpcAttachment final Serializable pk) { Serializable rs = findColumn(clazz, column, pk); @@ -1593,6 +1769,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return findColumn(clazz, column, null, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, bean)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, @RpcAttachment final B bean) { Serializable rs = findColumn(clazz, column, bean); @@ -1604,6 +1785,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return findColumn(clazz, column, null, node); } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, node)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, @RpcAttachment final FilterNode node) { Serializable rs = findColumn(clazz, column, node); @@ -1650,6 +1836,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final Serializable pk) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, defValue, pk)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, final Serializable defValue, @RpcAttachment final Serializable pk) { Serializable rs = findColumn(clazz, column, defValue, pk); @@ -1661,6 +1852,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return findColumn(clazz, column, defValue, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, defValue, bean)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, final Serializable defValue, @RpcAttachment final B bean) { Serializable rs = findColumn(clazz, column, defValue, bean); @@ -1707,6 +1903,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> findColumn(clazz, column, defValue, node)); + } + @Override public void findColumnAsync(final AsyncHandler handler, final Class clazz, final String column, final Serializable defValue, @RpcAttachment final FilterNode node) { Serializable rs = findColumn(clazz, column, defValue, node); @@ -1747,6 +1948,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture existsAsync(final Class clazz, final Serializable pk) { + return CompletableFuture.supplyAsync(() -> exists(clazz, pk)); + } + @Override public void existsAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final Serializable pk) { boolean rs = exists(clazz, pk); @@ -1758,6 +1964,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return exists(clazz, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture existsAsync(final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> exists(clazz, bean)); + } + @Override public void existsAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final B bean) { boolean rs = exists(clazz, bean); @@ -1798,6 +2009,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi } } + @Override + public CompletableFuture existsAsync(final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> exists(clazz, node)); + } + @Override public void existsAsync(final AsyncHandler handler, final Class clazz, @RpcAttachment final FilterNode node) { boolean rs = exists(clazz, node); @@ -1806,10 +2022,15 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi //-----------------------list set---------------------------- @Override - public HashSet queryColumnSet(String selectedColumn, Class clazz, String column, Serializable key) { + public HashSet queryColumnSet(final String selectedColumn, Class clazz, String column, Serializable key) { return queryColumnSet(selectedColumn, clazz, FilterNode.create(column, key)); } + @Override + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, Class clazz, String column, Serializable key) { + return CompletableFuture.supplyAsync(() -> queryColumnSet(selectedColumn, clazz, column, key)); + } + @Override public void queryColumnSetAsync(final AsyncHandler, String> handler, final String selectedColumn, final Class clazz, @RpcAttachment final String column, final Serializable key) { HashSet rs = queryColumnSet(selectedColumn, clazz, column, key); @@ -1821,6 +2042,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return new LinkedHashSet<>(queryColumnList(selectedColumn, clazz, bean)); } + @Override + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryColumnSet(selectedColumn, clazz, bean)); + } + @Override public void queryColumnSetAsync(final AsyncHandler, B> handler, final String selectedColumn, final Class clazz, @RpcAttachment final B bean) { HashSet rs = queryColumnSet(selectedColumn, clazz, bean); @@ -1832,6 +2058,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return new LinkedHashSet<>(queryColumnList(selectedColumn, clazz, node)); } + @Override + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryColumnSet(selectedColumn, clazz, node)); + } + @Override public void queryColumnSetAsync(final AsyncHandler, FilterNode> handler, final String selectedColumn, final Class clazz, @RpcAttachment final FilterNode node) { HashSet rs = queryColumnSet(selectedColumn, clazz, node); @@ -1843,6 +2074,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnList(selectedColumn, clazz, FilterNode.create(column, key)); } + @Override + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final String column, final Serializable key) { + return CompletableFuture.supplyAsync(() -> queryColumnList(selectedColumn, clazz, column, key)); + } + @Override public void queryColumnListAsync(final AsyncHandler, Serializable> handler, final String selectedColumn, final Class clazz, final String column, @RpcAttachment final Serializable key) { List rs = queryColumnList(selectedColumn, clazz, column, key); @@ -1854,6 +2090,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnList(selectedColumn, clazz, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryColumnList(selectedColumn, clazz, bean)); + } + @Override public void queryColumnListAsync(final AsyncHandler, B> handler, String selectedColumn, Class clazz, @RpcAttachment B bean) { List rs = queryColumnList(selectedColumn, clazz, bean); @@ -1865,6 +2106,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return (List) queryColumnSheet(false, selectedColumn, clazz, null, node).list(true); } + @Override + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryColumnList(selectedColumn, clazz, node)); + } + @Override public void queryColumnListAsync(final AsyncHandler, FilterNode> handler, final String selectedColumn, final Class clazz, @RpcAttachment final FilterNode node) { List rs = queryColumnList(selectedColumn, clazz, node); @@ -1876,6 +2122,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnList(selectedColumn, clazz, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryColumnList(selectedColumn, clazz, flipper, bean)); + } + @Override public void queryColumnListAsync(final AsyncHandler, B> handler, String selectedColumn, Class clazz, Flipper flipper, @RpcAttachment B bean) { List rs = queryColumnList(selectedColumn, clazz, flipper, bean); @@ -1887,6 +2138,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return (List) queryColumnSheet(false, selectedColumn, clazz, flipper, node).list(true); } + @Override + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryColumnList(selectedColumn, clazz, flipper, node)); + } + @Override public void queryColumnListAsync(final AsyncHandler, FilterNode> handler, final String selectedColumn, final Class clazz, Flipper flipper, @RpcAttachment final FilterNode node) { List rs = queryColumnList(selectedColumn, clazz, flipper, node); @@ -1910,6 +2166,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnSheet(selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture> queryColumnSheetAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryColumnSheet(selectedColumn, clazz, flipper, bean)); + } + @Override public void queryColumnSheetAsync(final AsyncHandler, B> handler, String selectedColumn, Class clazz, Flipper flipper, @RpcAttachment B bean) { Sheet rs = queryColumnSheet(selectedColumn, clazz, flipper, bean); @@ -1921,6 +2182,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryColumnSheet(true, selectedColumn, clazz, flipper, node); } + @Override + public CompletableFuture> queryColumnSheetAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryColumnSheet(selectedColumn, clazz, flipper, node)); + } + @Override public void queryColumnSheetAsync(final AsyncHandler, FilterNode> handler, final String selectedColumn, final Class clazz, final Flipper flipper, @RpcAttachment final FilterNode node) { Sheet rs = queryColumnSheet(selectedColumn, clazz, flipper, node); @@ -1957,6 +2223,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, FilterNode.create(column, key)); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final String column, final Serializable key) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, column, key)); + } + @Override public void queryListAsync(final AsyncHandler, Serializable> handler, final Class clazz, final String column, @RpcAttachment final Serializable key) { List rs = queryList(clazz, column, key); @@ -1977,6 +2248,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, (SelectColumn) null, bean); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, bean)); + } + @Override public void queryListAsync(final AsyncHandler, B> handler, final Class clazz, @RpcAttachment final B bean) { List rs = queryList(clazz, bean); @@ -1988,6 +2264,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, (SelectColumn) null, node); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, node)); + } + @Override public void queryListAsync(final AsyncHandler, FilterNode> handler, final Class clazz, @RpcAttachment final FilterNode node) { List rs = queryList(clazz, node); @@ -2009,6 +2290,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, selects, (Flipper) null, bean); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, SelectColumn selects, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, selects, bean)); + } + @Override public void queryListAsync(final AsyncHandler, B> handler, final Class clazz, final SelectColumn selects, @RpcAttachment final B bean) { List rs = queryList(clazz, selects, bean); @@ -2020,6 +2306,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, selects, (Flipper) null, node); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, SelectColumn selects, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, selects, node)); + } + @Override public void queryListAsync(final AsyncHandler, FilterNode> handler, final Class clazz, final SelectColumn selects, @RpcAttachment final FilterNode node) { List rs = queryList(clazz, selects, node); @@ -2031,6 +2322,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, flipper, FilterNode.create(column, key)); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final String column, final Serializable key) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, flipper, column, key)); + } + @Override public void queryListAsync(final AsyncHandler, Serializable> handler, final Class clazz, final Flipper flipper, final String column, @RpcAttachment final Serializable key) { List rs = queryList(clazz, flipper, column, key); @@ -2042,6 +2338,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, null, flipper, bean); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, flipper, bean)); + } + @Override public void queryListAsync(final AsyncHandler, B> handler, final Class clazz, final Flipper flipper, @RpcAttachment final B bean) { List rs = queryList(clazz, flipper, bean); @@ -2053,6 +2354,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return queryList(clazz, null, flipper, node); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, flipper, node)); + } + @Override public void queryListAsync(final AsyncHandler, FilterNode> handler, final Class clazz, final Flipper flipper, @RpcAttachment final FilterNode node) { List rs = queryList(clazz, flipper, node); @@ -2064,6 +2370,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(true, false, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean)).list(true); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, selects, flipper, bean)); + } + @Override public void queryListAsync(final AsyncHandler, B> handler, final Class clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final B bean) { List rs = queryList(clazz, selects, flipper, bean); @@ -2075,6 +2386,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(true, false, clazz, selects, flipper, node).list(true); } + @Override + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> queryList(clazz, selects, flipper, node)); + } + @Override public void queryListAsync(final AsyncHandler, FilterNode> handler, final Class clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final FilterNode node) { List rs = queryList(clazz, selects, flipper, node); @@ -2097,6 +2413,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(clazz, null, flipper, bean); } + @Override + public CompletableFuture> querySheetAsync(final Class clazz, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> querySheet(clazz, flipper, bean)); + } + @Override public void querySheetAsync(final AsyncHandler, B> handler, final Class clazz, final Flipper flipper, @RpcAttachment final B bean) { Sheet rs = querySheet(clazz, flipper, bean); @@ -2108,6 +2429,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(clazz, null, flipper, node); } + @Override + public CompletableFuture> querySheetAsync(final Class clazz, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> querySheet(clazz, flipper, node)); + } + @Override public void querySheetAsync(final AsyncHandler, FilterNode> handler, final Class clazz, final Flipper flipper, @RpcAttachment final FilterNode node) { Sheet rs = querySheet(clazz, flipper, node); @@ -2130,6 +2456,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(true, true, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean)); } + @Override + public CompletableFuture> querySheetAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) { + return CompletableFuture.supplyAsync(() -> querySheet(clazz, selects, flipper, bean)); + } + @Override public void querySheetAsync(final AsyncHandler, B> handler, final Class clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final B bean) { Sheet rs = querySheet(clazz, selects, flipper, bean); @@ -2141,6 +2472,11 @@ public class DataJdbcSource extends AbstractService implements DataSource, Servi return querySheet(true, true, clazz, selects, flipper, node); } + @Override + public CompletableFuture> querySheetAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node) { + return CompletableFuture.supplyAsync(() -> querySheet(clazz, selects, flipper, node)); + } + @Override public void querySheetAsync(final AsyncHandler, FilterNode> handler, final Class clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final FilterNode node) { Sheet rs = querySheet(clazz, selects, flipper, node); diff --git a/src/org/redkale/source/DataSource.java b/src/org/redkale/source/DataSource.java index 0c19540c6..f19dc1e96 100644 --- a/src/org/redkale/source/DataSource.java +++ b/src/org/redkale/source/DataSource.java @@ -8,6 +8,7 @@ package org.redkale.source; import java.io.Serializable; import java.sql.ResultSet; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import org.redkale.util.*; @@ -33,6 +34,16 @@ public interface DataSource { */ public void insert(final T... values); + /** + * 新增记录, 多对象必须是同一个Entity类
+ * + * @param + * @param values Entity对象 + * + * @return CompletableFuture + */ + public CompletableFuture insertAsync(final T... values); + /** * 新增记录, 多对象必须是同一个Entity类
* @@ -54,6 +65,17 @@ public interface DataSource { */ public int delete(final T... values); + /** + * 删除指定主键值的记录, 多对象必须是同一个Entity类
+ * 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
+ * + * @param 泛型 + * @param values Entity对象 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture deleteAsync(final T... values); + /** * 删除指定主键值的记录, 多对象必须是同一个Entity类
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {values.id}
@@ -78,6 +100,18 @@ public interface DataSource { */ public int delete(final Class clazz, final Serializable... ids); + /** + * 删除指定主键值的记录
+ * 等价SQL: DELETE FROM {table} WHERE {primary} IN {ids}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param ids 主键值 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture deleteAsync(final Class clazz, final Serializable... ids); + /** * 删除指定主键值的记录
* 等价SQL: DELETE FROM {table} WHERE {primary} IN {ids}
@@ -103,6 +137,18 @@ public interface DataSource { */ public int delete(final Class clazz, final FilterNode node); + /** + * 删除符合过滤条件的记录
+ * 等价SQL: DELETE FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture deleteAsync(final Class clazz, final FilterNode node); + /** * 删除符合过滤条件的记录
* 等价SQL: DELETE FROM {table} WHERE {filter node}
@@ -130,6 +176,20 @@ public interface DataSource { */ public int delete(final Class clazz, final Flipper flipper, final FilterNode node); + /** + * 删除符合过滤条件且指定最大影响条数的记录
+ * Flipper中offset字段将被忽略
+ * 等价SQL: DELETE FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture deleteAsync(final Class clazz, final Flipper flipper, final FilterNode node); + /** * 删除符合过滤条件且指定最大影响条数的记录
* Flipper中offset字段将被忽略
@@ -160,6 +220,20 @@ public interface DataSource { */ public int update(final T... values); + /** + * 更新记录, 多对象必须是同一个Entity类
+ * 等价SQL:
+ * UPDATE {table} SET column1 = value1, column2 = value2, ··· WHERE {primary} = {id1}
+ * UPDATE {table} SET column1 = value1, column2 = value2, ··· WHERE {primary} = {id2}
+ * ···
+ * + * @param 泛型 + * @param values Entity对象 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateAsync(final T... values); + /** * 更新记录, 多对象必须是同一个Entity类
* 等价SQL:
@@ -190,6 +264,21 @@ public interface DataSource { */ public int updateColumn(final Class clazz, final Serializable id, final String column, final Serializable value); + /** + * 更新单个记录的单个字段
+ * 注意:即使字段标记为@Column(updatable=false)也会被更新
+ * 等价SQL: UPDATE {table} SET {column} = {value} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param id 主键 + * @param column 待更新的字段名 + * @param value 更新值 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnupdateColumnAsync(final Class clazz, final Serializable id, final String column, final Serializable value); + /** * 更新单个记录的单个字段
* 注意:即使字段标记为@Column(updatable=false)也会被更新
@@ -221,6 +310,21 @@ public interface DataSource { */ public int updateColumn(final Class clazz, final String column, final Serializable value, final FilterNode node); + /** + * 更新符合过滤条件记录的单个字段
+ * 注意:即使字段标记为@Column(updatable=false)也会被更新
+ * 等价SQL: UPDATE {table} SET {column} = {value} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 待更新的字段名 + * @param value 更新值 + * @param node 过滤条件 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final Class clazz, final String column, final Serializable value, final FilterNode node); + /** * 更新符合过滤条件记录的单个字段
* 注意:即使字段标记为@Column(updatable=false)也会被更新
@@ -251,6 +355,20 @@ public interface DataSource { */ public int updateColumn(final Class clazz, final Serializable id, final ColumnValue... values); + /** + * 更新指定主键值记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param id 主键 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final Class clazz, final Serializable id, final ColumnValue... values); + /** * 更新指定主键值记录的部分字段
* 字段赋值操作选项见 ColumnExpress
@@ -281,6 +399,21 @@ public interface DataSource { */ public int updateColumn(final Class clazz, final FilterNode node, final ColumnValue... values); + /** + * 更新符合过滤条件记录的部分字段
+ * 字段赋值操作选项见 ColumnExpress
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final ColumnValue... values); + /** * 更新符合过滤条件记录的部分字段
* 字段赋值操作选项见 ColumnExpress
@@ -313,6 +446,22 @@ public interface DataSource { */ public int updateColumn(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValue... values); + /** + * 更新符合过滤条件的记录的指定字段
+ * Flipper中offset字段将被忽略
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} += {value2}, {column3} *= {value3}, ··· WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * @param flipper 翻页对象 + * @param values 更新字段 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final Class clazz, final FilterNode node, final Flipper flipper, final ColumnValue... values); + /** * 更新符合过滤条件的记录的指定字段
* Flipper中offset字段将被忽略
@@ -343,6 +492,19 @@ public interface DataSource { */ public int updateColumn(final T bean, final String... columns); + /** + * 更新单个记录的指定字段
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} = {value2}, {column3} = {value3}, ··· WHERE {primary} = {bean.id}
+ * + * @param Entity泛型 + * @param bean 待更新的Entity对象 + * @param columns 需更新的字段名 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final T bean, final String... columns); + /** * 更新单个记录的指定字段
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
@@ -370,6 +532,20 @@ public interface DataSource { */ public int updateColumn(final T bean, final FilterNode node, final String... columns); + /** + * 更新符合过滤条件记录的指定字段
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} = {value2}, {column3} = {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param bean 待更新的Entity对象 + * @param node 过滤条件 + * @param columns 需更新的字段名 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final T bean, final FilterNode node, final String... columns); + /** * 更新符合过滤条件记录的指定字段
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
@@ -398,6 +574,19 @@ public interface DataSource { */ public int updateColumn(final T bean, final SelectColumn selects); + /** + * 更新单个记录的指定字段
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} = {value2}, {column3} = {value3}, ··· WHERE {primary} = {bean.id}
+ * + * @param Entity泛型 + * @param bean 待更新的Entity对象 + * @param selects 指定字段 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final T bean, final SelectColumn selects); + /** * 更新单个记录的指定字段
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
@@ -426,6 +615,20 @@ public interface DataSource { */ public int updateColumn(final T bean, final FilterNode node, final SelectColumn selects); + /** + * 更新符合过滤条件记录的指定字段
+ * 注意:Entity类中标记为@Column(updatable=false)不会被更新
+ * 等价SQL: UPDATE {table} SET {column1} = {value1}, {column2} = {value2}, {column3} = {value3}, ··· WHERE {filter node}
+ * + * @param Entity泛型 + * @param bean 待更新的Entity对象 + * @param node 过滤条件 + * @param selects 指定字段 + * + * @return 影响的记录条数CompletableFuture + */ + public CompletableFuture updateColumnAsync(final T bean, final FilterNode node, final SelectColumn selects); + /** * 更新符合过滤条件记录的指定字段
* 注意:Entity类中标记为@Column(updatable=false)不会被更新
@@ -456,6 +659,19 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回null
+ * 等价SQL: SELECT FUNC{column} FROM {table}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.COUNT, null) 等价于: SELECT COUNT(*) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param column 指定字段 + * + * @return 聚合结果CompletableFuture + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回null
* 等价SQL: SELECT FUNC{column} FROM {table}
@@ -484,6 +700,20 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, final FilterBean bean); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回null
+ * 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter bean}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.COUNT, null, (FilterBean)null) 等价于: SELECT COUNT(*) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param column 指定字段 + * @param bean 过滤条件 + * + * @return 聚合结果CompletableFuture + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column, final FilterBean bean); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回null
* 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter bean}
@@ -514,6 +744,20 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, final FilterNode node); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回null
+ * 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter node}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.MAX, "createtime", (FilterNode)null) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param column 指定字段 + * @param node 过滤条件 + * + * @return 聚合结果 + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final String column, final FilterNode node); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回null
* 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter node}
@@ -543,6 +787,20 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final Number defVal, final String column); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
+ * 等价SQL: SELECT FUNC{column} FROM {table}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.MAX, "createtime") 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param defVal 默认值 + * @param column 指定字段 + * + * @return 聚合结果CompletableFuture + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
* 等价SQL: SELECT FUNC{column} FROM {table}
@@ -572,6 +830,21 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterBean bean); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
+ * 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter bean}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.MAX, "createtime", (FilterNode)null) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param defVal 默认值 + * @param column 指定字段 + * @param bean 过滤条件 + * + * @return 聚合结果CompletableFuture + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterBean bean); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
* 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter bean}
@@ -602,6 +875,21 @@ public interface DataSource { */ public Number getNumberResult(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterNode node); + /** + * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
+ * 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter node}
+ * 如 getNumberResultAsync(Record.class, FilterFunc.MAX, "createtime", (FilterNode)null) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param entityClass Entity类 + * @param func 聚合函数 + * @param defVal 默认值 + * @param column 指定字段 + * @param node 过滤条件 + * + * @return 聚合结果CompletableFuture + */ + public CompletableFuture getNumberResultAsync(final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterNode node); + /** * 获取符合过滤条件记录的聚合结果, 无结果返回默认值
* 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter node}
@@ -631,6 +919,19 @@ public interface DataSource { */ public Map getNumberMap(final Class entityClass, final FilterFuncColumn... columns); + /** + * 获取符合过滤条件记录的聚合结果Map
+ * 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table}
+ * 如 getNumberMapAsync(Record.class, new FilterFuncColumn(FilterFunc.MAX, "createtime")) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param Number + * @param entityClass Entity类 + * @param columns 聚合字段 + * + * @return 聚合结果Map CompletableFuture + */ + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterFuncColumn... columns); + /** * 获取符合过滤条件记录的聚合结果Map
* 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table}
@@ -658,6 +959,20 @@ public interface DataSource { */ public Map getNumberMap(final Class entityClass, final FilterBean bean, final FilterFuncColumn... columns); + /** + * 获取符合过滤条件记录的聚合结果Map
+ * 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table} WHERE {filter bean}
+ * 如 getNumberMapAsync(Record.class, (FilterBean)null, new FilterFuncColumn(FilterFunc.MAX, "createtime")) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param Number + * @param entityClass Entity类 + * @param bean 过滤条件 + * @param columns 聚合字段 + * + * @return 聚合结果Map CompletableFuture + */ + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterBean bean, final FilterFuncColumn... columns); + /** * 获取符合过滤条件记录的聚合结果Map
* 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table} WHERE {filter bean}
@@ -687,6 +1002,20 @@ public interface DataSource { */ public Map getNumberMap(final Class entityClass, final FilterNode node, final FilterFuncColumn... columns); + /** + * 获取符合过滤条件记录的聚合结果Map
+ * 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table} WHERE {filter node}
+ * 如 getNumberMapAsync(Record.class, (FilterNode)null, new FilterFuncColumn(FilterFunc.MAX, "createtime")) 等价于: SELECT MAX(createtime) FROM {table}
+ * + * @param Number + * @param entityClass Entity类 + * @param node 过滤条件 + * @param columns 聚合字段 + * + * @return 聚合结果Map + */ + public CompletableFuture> getNumberMapAsync(final Class entityClass, final FilterNode node, final FilterFuncColumn... columns); + /** * 获取符合过滤条件记录的聚合结果Map
* 等价SQL: SELECT FUNC1{column1}, FUNC2{column2}, ··· FROM {table} WHERE {filter node}
@@ -718,6 +1047,23 @@ public interface DataSource { */ public Map queryColumnMap(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn); + /** + * 查询符合过滤条件记录的GROUP BY聚合结果Map
+ * 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} GROUP BY {keyColumn}
+ * 如 queryColumnMapAsync(Record.class, "name", FilterFunc.MAX, "createtime") 等价于: SELECT name, MAX(createtime) FROM record GROUP BY name
+ * + * @param Entity泛型 + * @param Key字段的数据类型 + * @param Number + * @param entityClass Entity类 + * @param keyColumn Key字段 + * @param func 聚合函数 + * @param funcColumn 聚合字段 + * + * @return 聚合结果Map CompletableFuture + */ + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn); + /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} GROUP BY {keyColumn}
@@ -753,6 +1099,24 @@ public interface DataSource { */ public Map queryColumnMap(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean); + /** + * 查询符合过滤条件记录的GROUP BY聚合结果Map
+ * 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} WHERE {filter bean} GROUP BY {keyColumn}
+ * 如 queryColumnMapAsync(Record.class, "name", FilterFunc.MAX, "createtime", (FilterBean)null) 等价于: SELECT name, MAX(createtime) FROM record GROUP BY name
+ * + * @param Entity泛型 + * @param Key字段的数据类型 + * @param Number + * @param entityClass Entity类 + * @param keyColumn Key字段 + * @param func 聚合函数 + * @param funcColumn 聚合字段 + * @param bean 过滤条件 + * + * @return 聚合结果Map CompletableFuture + */ + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean); + /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} WHERE {filter bean} GROUP BY {keyColumn}
@@ -789,6 +1153,24 @@ public interface DataSource { */ public Map queryColumnMap(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterNode node); + /** + * 查询符合过滤条件记录的GROUP BY聚合结果Map
+ * 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} WHERE {filter node} GROUP BY {keyColumn}
+ * 如 queryColumnMapAsync(Record.class, "name", FilterFunc.MAX, "createtime", (FilterNode)null) 等价于: SELECT name, MAX(createtime) FROM record GROUP BY name
+ * + * @param Entity泛型 + * @param Key字段的数据类型 + * @param Number + * @param entityClass Entity类 + * @param keyColumn Key字段 + * @param func 聚合函数 + * @param funcColumn 聚合字段 + * @param node 过滤条件 + * + * @return 聚合结果Map CompletableFuture + */ + public CompletableFuture> queryColumnMapAsync(final Class entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterNode node); + /** * 查询符合过滤条件记录的GROUP BY聚合结果Map
* 等价SQL: SELECT keyColumn, FUNC{funcColumn} FROM {table} WHERE {filter node} GROUP BY {keyColumn}
@@ -820,6 +1202,18 @@ public interface DataSource { */ public T find(final Class clazz, final Serializable pk); + /** + * 获取指定主键值的单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT * FROM {table} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param pk 主键值 + * + * @return Entity对象 CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final Serializable pk); + /** * 获取指定主键值的单个记录, 返回null表示不存在值
* 等价SQL: SELECT * FROM {table} WHERE {primary} = {id}
@@ -845,6 +1239,19 @@ public interface DataSource { */ public T find(final Class clazz, final SelectColumn selects, final Serializable pk); + /** + * 获取指定主键值的单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param pk 主键值 + * + * @return Entity对象CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final Serializable pk); + /** * 获取指定主键值的单个记录, 返回null表示不存在值
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {primary} = {id}
@@ -871,6 +1278,19 @@ public interface DataSource { */ public T find(final Class clazz, final String column, final Serializable key); + /** + * 获取符合过滤条件单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 过滤字段名 + * @param key 过滤字段值 + * + * @return Entity对象CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final String column, final Serializable key); + /** * 获取符合过滤条件单个记录, 返回null表示不存在值
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key}
@@ -896,6 +1316,18 @@ public interface DataSource { */ public T find(final Class clazz, final FilterBean bean); + /** + * 获取符合过滤条件单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT * FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param bean 过滤条件 + * + * @return Entity对象CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final FilterBean bean); + /** * 获取符合过滤条件单个记录, 返回null表示不存在值
* 等价SQL: SELECT * FROM {table} WHERE {filter bean}
@@ -921,6 +1353,18 @@ public interface DataSource { */ public T find(final Class clazz, final FilterNode node); + /** + * 获取符合过滤条件单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT * FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return Entity对象CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final FilterNode node); + /** * 获取符合过滤条件单个记录, 返回null表示不存在值
* 等价SQL: SELECT * FROM {table} WHERE {filter node}
@@ -946,6 +1390,19 @@ public interface DataSource { */ public T find(final Class clazz, final SelectColumn selects, final FilterBean bean); + /** + * 获取符合过滤条件单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param bean 过滤条件 + * + * @return Entity对象 CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final FilterBean bean); + /** * 获取符合过滤条件单个记录, 返回null表示不存在值
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean}
@@ -973,6 +1430,19 @@ public interface DataSource { */ public T find(final Class clazz, final SelectColumn selects, final FilterNode node); + /** + * 获取符合过滤条件单个记录, 返回null表示不存在值
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param node 过滤条件 + * + * @return Entity对象 CompletableFuture + */ + public CompletableFuture findAsync(final Class clazz, final SelectColumn selects, final FilterNode node); + /** * 获取符合过滤条件单个记录, 返回null表示不存在值
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node}
@@ -999,6 +1469,19 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final Serializable pk); + /** + * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param pk 主键值 + * + * @return Entity对象 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable pk); + /** * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
* 等价SQL: SELECT {column} FROM {table} WHERE {primary} = {id}
@@ -1025,6 +1508,19 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final FilterBean bean); + /** + * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param bean 过滤条件 + * + * @return 字段值 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final FilterBean bean); + /** * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
* 等价SQL: SELECT {column} FROM {table} WHERE {filter bean}
@@ -1052,6 +1548,19 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final FilterNode node); + /** + * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param node 过滤条件 + * + * @return 字段值 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final FilterNode node); + /** * 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值
* 等价SQL: SELECT {column} FROM {table} WHERE {filter node}
@@ -1079,6 +1588,20 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final Serializable defValue, final Serializable pk); + /** + * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param defValue 默认值 + * @param pk 主键值 + * + * @return 字段值 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final Serializable pk); + /** * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
* 等价SQL: SELECT {column} FROM {table} WHERE {primary} = {id}
@@ -1107,6 +1630,20 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final Serializable defValue, final FilterBean bean); + /** + * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param defValue 默认值 + * @param bean 过滤条件 + * + * @return 字段值 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final FilterBean bean); + /** * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
* 等价SQL: SELECT {column} FROM {table} WHERE {filter bean}
@@ -1136,6 +1673,20 @@ public interface DataSource { */ public Serializable findColumn(final Class clazz, final String column, final Serializable defValue, final FilterNode node); + /** + * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
+ * 等价SQL: SELECT {column} FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 字段名 + * @param defValue 默认值 + * @param node 过滤条件 + * + * @return 字段值 CompletableFuture + */ + public CompletableFuture findColumnAsync(final Class clazz, final String column, final Serializable defValue, final FilterNode node); + /** * 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值
* 等价SQL: SELECT {column} FROM {table} WHERE {filter node}
@@ -1162,6 +1713,18 @@ public interface DataSource { */ public boolean exists(final Class clazz, final Serializable pk); + /** + * 判断是否存在主键值的记录
+ * 等价SQL: SELECT COUNT(*) FROM {table} WHERE {primary} = {id}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param pk 主键值 + * + * @return 是否存在CompletableFuture + */ + public CompletableFuture existsAsync(final Class clazz, final Serializable pk); + /** * 判断是否存在主键值的记录
* 等价SQL: SELECT COUNT(*) FROM {table} WHERE {primary} = {id}
@@ -1186,6 +1749,18 @@ public interface DataSource { */ public boolean exists(final Class clazz, final FilterBean bean); + /** + * 判断是否存在符合过滤条件的记录
+ * 等价SQL: SELECT COUNT(*) FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param bean 过滤条件 + * + * @return 是否存在CompletableFuture + */ + public CompletableFuture existsAsync(final Class clazz, final FilterBean bean); + /** * 判断是否存在符合过滤条件的记录
* 等价SQL: SELECT COUNT(*) FROM {table} WHERE {filter bean}
@@ -1211,6 +1786,18 @@ public interface DataSource { */ public boolean exists(final Class clazz, final FilterNode node); + /** + * 判断是否存在符合过滤条件的记录
+ * 等价SQL: SELECT COUNT(*) FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return 是否存在CompletableFuture + */ + public CompletableFuture existsAsync(final Class clazz, final FilterNode node); + /** * 判断是否存在符合过滤条件的记录
* 等价SQL: SELECT COUNT(*) FROM {table} WHERE {filter node}
@@ -1239,6 +1826,21 @@ public interface DataSource { */ public HashSet queryColumnSet(final String selectedColumn, final Class clazz, final String column, final Serializable key); + /** + * 查询符合过滤条件记录的某个字段Set集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {column} = {key}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param column 过滤字段名 + * @param key 过滤字段值 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, final Class clazz, final String column, final Serializable key); + /** * 查询符合过滤条件记录的某个字段Set集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {column} = {key}
@@ -1268,6 +1870,20 @@ public interface DataSource { */ public HashSet queryColumnSet(final String selectedColumn, final Class clazz, final FilterBean bean); + /** + * 查询符合过滤条件记录的某个字段Set集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param bean 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, final Class clazz, final FilterBean bean); + /** * 查询符合过滤条件记录的某个字段Set集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean}
@@ -1297,6 +1913,20 @@ public interface DataSource { */ public HashSet queryColumnSet(final String selectedColumn, final Class clazz, final FilterNode node); + /** + * 查询符合过滤条件记录的某个字段Set集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnSetAsync(final String selectedColumn, final Class clazz, final FilterNode node); + /** * 查询符合过滤条件记录的某个字段Set集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node}
@@ -1326,6 +1956,21 @@ public interface DataSource { */ public List queryColumnList(final String selectedColumn, final Class clazz, final String column, final Serializable key); + /** + * 查询符合过滤条件记录的某个字段List集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {column} = {key}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param column 过滤字段名 + * @param key 过滤字段值 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final String column, final Serializable key); + /** * 查询符合过滤条件记录的某个字段List集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {column} = {key}
@@ -1355,6 +2000,20 @@ public interface DataSource { */ public List queryColumnList(final String selectedColumn, final Class clazz, final FilterBean bean); + /** + * 查询符合过滤条件记录的某个字段List集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param bean 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final FilterBean bean); + /** * 查询符合过滤条件记录的某个字段List集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean}
@@ -1384,6 +2043,20 @@ public interface DataSource { */ public List queryColumnList(final String selectedColumn, final Class clazz, final FilterNode node); + /** + * 查询符合过滤条件记录的某个字段List集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final FilterNode node); + /** * 查询符合过滤条件记录的某个字段List集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node}
@@ -1413,6 +2086,21 @@ public interface DataSource { */ public List queryColumnList(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的某个字段List集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的某个字段List集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1444,6 +2132,21 @@ public interface DataSource { */ public List queryColumnList(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的某个字段List集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnListAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的某个字段List集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1474,6 +2177,21 @@ public interface DataSource { */ public Sheet queryColumnSheet(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的某个字段Sheet集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnSheetAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的某个字段Sheet集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1505,6 +2223,21 @@ public interface DataSource { */ public Sheet queryColumnSheet(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的某个字段Sheet集合
+ * 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param 字段类型 + * @param selectedColumn 指定字段 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return 字段值的集合CompletableFuture + */ + public CompletableFuture> queryColumnSheetAsync(final String selectedColumn, final Class clazz, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的某个字段Sheet集合
* 等价SQL: SELECT {selectedColumn} FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1533,6 +2266,19 @@ public interface DataSource { */ public List queryList(final Class clazz, final String column, final Serializable key); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param column 过滤字段名 + * @param key 过滤字段值 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final String column, final Serializable key); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1558,6 +2304,18 @@ public interface DataSource { */ public List queryList(final Class clazz, final FilterBean bean); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final FilterBean bean); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {filter bean}
@@ -1583,6 +2341,18 @@ public interface DataSource { */ public List queryList(final Class clazz, final FilterNode node); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param node 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final FilterNode node); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {filter node}
@@ -1608,6 +2378,19 @@ public interface DataSource { */ public List queryList(final Class clazz, final SelectColumn selects, final FilterBean bean); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final FilterBean bean); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean}
@@ -1635,6 +2418,19 @@ public interface DataSource { */ public List queryList(final Class clazz, final SelectColumn selects, final FilterNode node); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param node 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final FilterNode node); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node}
@@ -1662,6 +2458,20 @@ public interface DataSource { */ public List queryList(final Class clazz, final Flipper flipper, final String column, final Serializable key); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param column 过滤字段名 + * @param key 过滤字段值 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final String column, final Serializable key); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {column} = {key} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1689,6 +2499,19 @@ public interface DataSource { */ public List queryList(final Class clazz, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1714,10 +2537,23 @@ public interface DataSource { * * @return Entity的集合 * - * @return Entity的集合 */ public List queryList(final Class clazz, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return Entity的集合 + * + */ + public CompletableFuture> queryListAsync(final Class clazz, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1745,6 +2581,20 @@ public interface DataSource { */ public List queryList(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1774,6 +2624,20 @@ public interface DataSource { */ public List queryList(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的List集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> queryListAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的List集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1802,6 +2666,19 @@ public interface DataSource { */ public Sheet querySheet(final Class clazz, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的Sheet集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> querySheetAsync(final Class clazz, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的Sheet集合
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1829,6 +2706,19 @@ public interface DataSource { */ public Sheet querySheet(final Class clazz, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的Sheet集合
+ * 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> querySheetAsync(final Class clazz, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的Sheet集合
* 等价SQL: SELECT * FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1856,6 +2746,20 @@ public interface DataSource { */ public Sheet querySheet(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean); + /** + * 查询符合过滤条件记录的Sheet集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param flipper 翻页对象 + * @param bean 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> querySheetAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean); + /** * 查询符合过滤条件记录的Sheet集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit}
@@ -1885,6 +2789,20 @@ public interface DataSource { */ public Sheet querySheet(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node); + /** + * 查询符合过滤条件记录的Sheet集合
+ * 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}
+ * + * @param Entity泛型 + * @param clazz Entity类 + * @param selects 指定字段 + * @param flipper 翻页对象 + * @param node 过滤条件 + * + * @return Entity的集合CompletableFuture + */ + public CompletableFuture> querySheetAsync(final Class clazz, final SelectColumn selects, final Flipper flipper, final FilterNode node); + /** * 查询符合过滤条件记录的Sheet集合
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter node} ORDER BY {flipper.sort} LIMIT {flipper.limit}