NutzCN Logo
问答 一对多自定义sql应该怎么写
发布于 88天前 作者 qq_8990e1fd 212 次浏览 复制 上一个帖子 下一个帖子
标签:

public T_approvalProcess queryById(String approve_Id, String ap_id) {
StringBuffer str = new StringBuffer("SELECT ap.*,ar.* FROM t_approvalProcess AS ap JOIN t_approverecord AS ar ON ap.approvalRecordId = ar.alp_id WHERE 1 = 1 ");
if (Strings.isNotBlank(approve_Id)) str.append(" AND ap.ap_id = @ap_id ");

    if (Strings.isNotBlank(ap_id)) str.append(" AND ar.approve_Id = @approve_Id  ");
    Sql sql = Sqls.queryRecord(str.toString());
    sql.params().set("ap_id", ap_id);
    sql.params().set("approve_Id", approve_Id);
    dao.execute(sql);
    List<Record> records = sql.getList(Record.class);
    T_approvalProcess approvalProcess = null;
    for (Record r : records) {
        approvalProcess = r.toEntity(dao.getEntity(T_approvalProcess.class));
        T_approverecord approverecord = r.toEntity(dao.getEntity(T_approverecord.class));
        approvalProcess.setApproverecord(approverecord);
    }
    return approvalProcess;
}
4 回复

其中 approverecord 是 多个 数据

record.toPojo/toEntity支持前缀,也许能用上

我这么写也能解决 我需要的问题 但是总感觉不对

 @Override
    public T_approvalProcess queryById(String q_id) {
        StringBuffer str = new StringBuffer("SELECT  ap.*,ar.* FROM t_approvalProcess AS ap JOIN t_approverecord AS ar ON ap.approvalRecordId = ar.alp_id JOIN t_leave AS l ON l.approvalProcessId = ap.ap_id WHERE  l.q_id = @q_id ");
        Sql sql = Sqls.queryRecord(str.toString());
        sql.params().set("q_id",q_id);
        dao.execute(sql);
        List<Record> records = sql.getList(Record.class);
        T_approvalProcess approvalProcess = new T_approvalProcess();
        List<T_approverecord> list  = new ArrayList<T_approverecord>();
        for(Record r : records){
            approvalProcess = r.toEntity(dao.getEntity(T_approvalProcess.class));
            T_approverecord approverecord = r.toEntity(dao.getEntity(T_approverecord.class));
            list.add(approverecord);
        }
        approvalProcess.setApproverecords(list);
        return approvalProcess;
    }

腾讯云双11.11 云上盛惠
1核2G1M,88元/1年
2核4G3M,698元/3年
4核8G5M,1501元/1年,3962元/3年
8核16G5M,2813元/1年
更多进入活动地址:
https://curl.qcloud.com/fk3zBX1F

【阿里云】双11拼团活动组队中
1核2G1M,85元/1年,254/3年
2核4G3M,295元/1年,664元/3年
4核8G5M,1000元/1年,3000元/3年
更多进入活动地址:
https://c.tb.cn/k6.GzhOc?userCode=wbqjs7bw

添加回复
请先登陆
回到顶部