DataSource.insert增加Collection、Stream方法

This commit is contained in:
Redkale
2020-01-08 13:36:59 +08:00
parent 66e1f58879
commit 51b45f4713
2 changed files with 65 additions and 3 deletions

View File

@@ -43,6 +43,26 @@ public interface DataSource {
*/
public <T> int insert(final T... entitys);
/**
* 新增记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
*
* @param <T> 泛型
* @param entitys Entity对象
*
* @return 影响的记录条数
*/
public <T> int insert(final Collection<T> entitys);
/**
* 新增记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
*
* @param <T> 泛型
* @param entitys Entity对象
*
* @return 影响的记录条数
*/
public <T> int insert(final Stream<T> entitys);
/**
* 新增记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
*
@@ -53,6 +73,26 @@ public interface DataSource {
*/
public <T> CompletableFuture<Integer> insertAsync(final T... entitys);
/**
* 新增记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
*
* @param <T> 泛型
* @param entitys Entity对象
*
* @return CompletableFuture
*/
public <T> CompletableFuture<Integer> insertAsync(final Collection<T> entitys);
/**
* 新增记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
*
* @param <T> 泛型
* @param entitys Entity对象
*
* @return CompletableFuture
*/
public <T> CompletableFuture<Integer> insertAsync(final Stream<T> entitys);
//-------------------------deleteAsync--------------------------
/**
* 删除指定主键值的记录, 多对象必须是同一个Entity类且必须在同一张表中 <br>
@@ -1429,7 +1469,6 @@ public interface DataSource {
public <T> CompletableFuture<Boolean> existsAsync(final Class<T> clazz, final FilterNode node);
//-----------------------list set----------------------------
/**
* 查询符合过滤条件记录的某个字段Set集合 <br>
* 等价SQL: SELECT DISTINCT {selectedColumn} FROM {table} WHERE {column} = {key} <br>

View File

@@ -328,6 +328,18 @@ public abstract class DataSqlSource<DBChannel> extends AbstractService implement
}).join();
}
@Override
public final <T> int insert(final Collection<T> entitys) {
if (entitys == null || entitys.isEmpty()) return 0;
return insert(entitys.toArray());
}
@Override
public final <T> int insert(final Stream<T> entitys) {
if (entitys == null) return 0;
return insert(entitys.toArray());
}
@Override
public <T> CompletableFuture<Integer> insertAsync(@RpcCall(DataCallArrayAttribute.class) T... entitys) {
if (entitys.length == 0) return CompletableFuture.completedFuture(0);
@@ -353,6 +365,18 @@ public abstract class DataSqlSource<DBChannel> extends AbstractService implement
});
}
@Override
public final <T> CompletableFuture<Integer> insertAsync(final Collection<T> entitys) {
if (entitys == null || entitys.isEmpty()) return CompletableFuture.completedFuture(0);
return insertAsync(entitys.toArray());
}
@Override
public final <T> CompletableFuture<Integer> insertAsync(final Stream<T> entitys) {
if (entitys == null) return CompletableFuture.completedFuture(0);
return insertAsync(entitys.toArray());
}
protected <T> int insertCache(final EntityInfo<T> info, T... entitys) {
final EntityCache<T> cache = info.getCache();
if (cache == null) return 0;
@@ -1800,7 +1824,6 @@ public abstract class DataSqlSource<DBChannel> extends AbstractService implement
}
//-----------------------list set----------------------------
@Override
public <T, V extends Serializable> Set<V> queryColumnSet(final String selectedColumn, final Class<T> clazz, final String column, final Serializable colval) {
return queryColumnSet(selectedColumn, clazz, null, FilterNode.create(column, colval));
@@ -1867,7 +1890,7 @@ public abstract class DataSqlSource<DBChannel> extends AbstractService implement
return rs;
});
}
@Override
public <T, V extends Serializable> List<V> queryColumnList(final String selectedColumn, final Class<T> clazz, final String column, final Serializable colval) {
return queryColumnList(selectedColumn, clazz, null, FilterNode.create(column, colval));