
sf.r2dbc.mapper.R2dbcDaoMapperImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sorm Show documentation
Show all versions of sorm Show documentation
java jpa tool for spring
The newest version!
package sf.r2dbc.mapper;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import sf.core.DBObject;
import sf.database.dialect.DBDialect;
import sf.database.jdbc.sql.ModelSql;
import sf.r2dbc.dao.R2dbcClient;
import sf.r2dbc.sql.R2dbcCrud;
import sf.r2dbc.sql.R2dbcUtils;
import java.util.ArrayList;
import java.util.List;
/**
* daoMapper实现类
* @param
*/
public class R2dbcDaoMapperImpl implements R2dbcDaoMapper {
protected R2dbcClient r2dbcClient;
protected Class domainClass;
public R2dbcDaoMapperImpl(Class domainClass, R2dbcClient r2dbcClient) {
this.domainClass = domainClass;
this.r2dbcClient = r2dbcClient;
}
@Override
public Mono merge(T entity) {
return getR2dbcClient().merge(entity);
}
@Override
public Mono insert(T entity) {
return getR2dbcClient().insert(entity);
}
@Override
public Flux insertBatch(List list) {
return getR2dbcClient().batchInsert(list);
}
@Override
public Flux insertBatchFast(List list) {
return getR2dbcClient().batchInsertFast(list);
}
@Override
public Mono updateById(T entity) {
return getR2dbcClient().update(entity);
}
@Override
public Mono update(T entity) {
return getR2dbcClient().update(entity);
}
@Override
public Flux updateBatch(List list) {
return getR2dbcClient().batchUpdate(list);
}
@Override
public Mono delete(T entity) {
return getR2dbcClient().delete(entity);
}
@Override
public Mono deleteById(Object... key) {
return getR2dbcClient().deleteByPrimaryKeys(domainClass, key);
}
@Override
public Mono logicDelete(T entity) {
return getR2dbcClient().logicDelete(entity);
}
@Override
public Mono logicDeleteById(Object... key) {
return getR2dbcClient().logicDeleteByPrimaryKeys(domainClass, key);
}
@Override
public Flux deleteInBatch(Iterable entities) {
return getR2dbcClient().batchDelete(asList(entities));
}
@Override
public Mono deleteAllInBatch() {
return getR2dbcClient().truncate(domainClass);
}
@Override
public Mono unique(Object... keys) {
return getR2dbcClient().selectByPrimaryKeys(domainClass, keys);
}
@Override
public Mono single(T query) {
return getR2dbcClient().selectOne(query);
}
@Override
public Mono lock(T query) {
return getR2dbcClient().selectOneForUpdate(query);
}
@Override
public Mono count() {
return getR2dbcClient().monoFunc(r2dbcConnection -> {
DBDialect dbDialect = R2dbcUtils.getDBDialect(r2dbcConnection);
String sql = ModelSql.getSelectCountSql(dbDialect, domainClass);
return R2dbcCrud.getInstance().getCrudSql().selectOne(r2dbcConnection, Long.class, sql).defaultIfEmpty(0L);
});
}
@Override
public Mono count(T query) {
return getR2dbcClient().selectCount(query);
}
@Override
public Mono existsById(Object... id) {
return getR2dbcClient().existsByPrimaryKeys(domainClass, id);
}
@Override
public Mono exists(T query) {
return getR2dbcClient().exists(query);
}
@Override
public Flux selectList(T query) {
return getR2dbcClient().selectList(query);
}
private List asList(Iterable entities) {
List list = new ArrayList<>();
for (S entity : entities) {
list.add(entity);
}
return list;
}
@Override
public R2dbcClient getR2dbcClient() {
return r2dbcClient;
}
@Override
public Class getDomainClass() {
return domainClass;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy