All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.qdbp.jdbc.stream.RecursiveSearchedStream Maven / Gradle / Ivy

package com.gitee.qdbp.jdbc.stream;

import java.util.List;
import com.gitee.qdbp.able.jdbc.condition.DbWhere;
import com.gitee.qdbp.able.jdbc.ordering.Orderings;
import com.gitee.qdbp.jdbc.api.CrudDao;

/**
 * 递归查询, 设置searchBy之后的流式操作对象
 *
 * @author zhaohuihua
 * @version 20210530
 */
public class RecursiveSearchedStream extends RecursiveExecuteStream {

    RecursiveSearchedStream(CrudDao dao, String codeField, String parentField, List startCodes,
            DbWhere filterWhere, DbWhere searchWhere) {
        super(dao, codeField, parentField, startCodes, filterWhere, searchWhere, Orderings.NONE);
    }

    /**
     * 设置OrderBy条件
* recursiveBy(codeField, parentField) 按什么字段进行递归查询
* startBy 起始编号
* filterBy 数据过滤条件, 过滤哪些数据参与递归 (如数据状态,租户编号等条件)
* searchBy 结果搜索条件 (如用户输入的查询条件) 这些条件如果放在filterWhere中将无法生成完整的树
* 注意: 查询结果包括startCode节点的自身记录, 如果不需要应在searchWhere条件排除
*
    List<SysDept> depts = qdbcBoot.crudStream(SysDept.class)
        .recursiveBy("id", "parentId") // 按id/parentId进行递归查询
        .startBy("D01", "D02")
        .filterBy("tenantCode").equals("T001").end() // 租户编号
        .searchBy("id").notIn("D01", "D02").end() // 查询子节点, 但不要包含起始编号自身
        .orderBy("sortIndex asc")
        .listChildren();
        // listParents();
     * 
* * @param orderings OrderBy条件 * @return 返回后续流式操作对象 */ public RecursiveExecuteStream orderBy(String orderings) { return orderBy(Orderings.of(orderings)); } /** * 设置OrderBy条件
* recursiveBy(codeField, parentField) 按什么字段进行递归查询
* startBy 起始编号
* filterBy 数据过滤条件, 过滤哪些数据参与递归 (如数据状态,租户编号等条件)
* searchBy 结果搜索条件 (如用户输入的查询条件) 这些条件如果放在filterWhere中将无法生成完整的树
* 注意: 查询结果包括startCode节点的自身记录, 如果不需要应在searchWhere条件排除
*
    List<SysDept> depts = qdbcBoot.crudStream(SysDept.class)
        .recursiveBy("id", "parentId") // 按id/parentId进行递归查询
        .startBy("D01", "D02")
        .filterBy("tenantCode").equals("T001").end() // 租户编号
        .searchBy("id").notIn("D01", "D02").end() // 查询子节点, 但不要包含起始编号自身
        .orderBy("sortIndex asc")
        .listChildren();
        // listParents();
     * 
* * @param orderings OrderBy条件 * @return 返回后续流式操作对象 */ public RecursiveExecuteStream orderBy(Orderings orderings) { return new RecursiveExecuteStream<>(dao, codeField, parentField, startCodes, filterWhere, searchWhere, orderings); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy