diff --git a/src/org/redkale/source/DataSource.java b/src/org/redkale/source/DataSource.java index 2a4ef9a4a..58d57c07f 100644 --- a/src/org/redkale/source/DataSource.java +++ b/src/org/redkale/source/DataSource.java @@ -43,6 +43,26 @@ public interface DataSource { */ public int insert(final T... entitys); + /** + * 新增记录, 多对象必须是同一个Entity类且必须在同一张表中
+ * + * @param 泛型 + * @param entitys Entity对象 + * + * @return 影响的记录条数 + */ + public int insert(final Collection entitys); + + /** + * 新增记录, 多对象必须是同一个Entity类且必须在同一张表中
+ * + * @param 泛型 + * @param entitys Entity对象 + * + * @return 影响的记录条数 + */ + public int insert(final Stream entitys); + /** * 新增记录, 多对象必须是同一个Entity类且必须在同一张表中
* @@ -53,6 +73,26 @@ public interface DataSource { */ public CompletableFuture insertAsync(final T... entitys); + /** + * 新增记录, 多对象必须是同一个Entity类且必须在同一张表中
+ * + * @param 泛型 + * @param entitys Entity对象 + * + * @return CompletableFuture + */ + public CompletableFuture insertAsync(final Collection entitys); + + /** + * 新增记录, 多对象必须是同一个Entity类且必须在同一张表中
+ * + * @param 泛型 + * @param entitys Entity对象 + * + * @return CompletableFuture + */ + public CompletableFuture insertAsync(final Stream entitys); + //-------------------------deleteAsync-------------------------- /** * 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中
@@ -1429,7 +1469,6 @@ public interface DataSource { public CompletableFuture existsAsync(final Class clazz, final FilterNode node); //-----------------------list set---------------------------- - /** * 查询符合过滤条件记录的某个字段Set集合
* 等价SQL: SELECT DISTINCT {selectedColumn} FROM {table} WHERE {column} = {key}
diff --git a/src/org/redkale/source/DataSqlSource.java b/src/org/redkale/source/DataSqlSource.java index 1c807acb3..5f6b7f9db 100644 --- a/src/org/redkale/source/DataSqlSource.java +++ b/src/org/redkale/source/DataSqlSource.java @@ -328,6 +328,18 @@ public abstract class DataSqlSource extends AbstractService implement }).join(); } + @Override + public final int insert(final Collection entitys) { + if (entitys == null || entitys.isEmpty()) return 0; + return insert(entitys.toArray()); + } + + @Override + public final int insert(final Stream entitys) { + if (entitys == null) return 0; + return insert(entitys.toArray()); + } + @Override public CompletableFuture insertAsync(@RpcCall(DataCallArrayAttribute.class) T... entitys) { if (entitys.length == 0) return CompletableFuture.completedFuture(0); @@ -353,6 +365,18 @@ public abstract class DataSqlSource extends AbstractService implement }); } + @Override + public final CompletableFuture insertAsync(final Collection entitys) { + if (entitys == null || entitys.isEmpty()) return CompletableFuture.completedFuture(0); + return insertAsync(entitys.toArray()); + } + + @Override + public final CompletableFuture insertAsync(final Stream entitys) { + if (entitys == null) return CompletableFuture.completedFuture(0); + return insertAsync(entitys.toArray()); + } + protected int insertCache(final EntityInfo info, T... entitys) { final EntityCache cache = info.getCache(); if (cache == null) return 0; @@ -1800,7 +1824,6 @@ public abstract class DataSqlSource extends AbstractService implement } //-----------------------list set---------------------------- - @Override public Set queryColumnSet(final String selectedColumn, final Class clazz, final String column, final Serializable colval) { return queryColumnSet(selectedColumn, clazz, null, FilterNode.create(column, colval)); @@ -1867,7 +1890,7 @@ public abstract class DataSqlSource extends AbstractService implement return rs; }); } - + @Override public List queryColumnList(final String selectedColumn, final Class clazz, final String column, final Serializable colval) { return queryColumnList(selectedColumn, clazz, null, FilterNode.create(column, colval));