DbrestWrapper关联查询后添加其他字段关联的条件

场景描述

通过模型访问数据的java SDK做关联查询后再添加where条件

实现思路

通过DbrestWrapper提供的条件操作符拼接

具体实现

普通的where条件直接选择需要的条件操作符拼接即可,如果需要的条件还是两个关联表中的字段值比较条件操作符的API中参数需要特殊写法,具体如下

1.普通的where条件

成绩表和课程表关联后查成绩大于80的数据
    DbrestWrapper<?> csListWrapper = (DbrestWrapper<?>) new DbrestWrapper(ContextUtil.getServiceName(),"main","score");
    csListWrapper.select("A.fid as fid","A.sid as sid","A.score as score","B.className as className","B.teacher as teacher");
    csListWrapper.setMainTableAlias("A");
    csListWrapper.leftJoin("course").alias("B").on("cid.eq.fid");
    csListWrapper.gt("A.score", 80);
    List<Classscore> csList = DbrestUtil.selectAll(csListWrapper,Classscore.class);

对应的sql语句: SELECT A.fid as fid,A.sid as sid,A.score as score,B.className as className,B.teacher as teacher FROM main_score AS A left join main_course AS B ON A.cid=B.fid WHERE (A.score>?)

2.两个关联表中的字段值比较的where条件

成绩表和课程表关联后在根据两个表中的classid字段中相等过滤数据

    DbrestWrapper<?> csListWrapper = (DbrestWrapper<?>) new DbrestWrapper(ContextUtil.getServiceName(),"main","score");
    csListWrapper.select("A.fid as fid","A.sid as sid","A.score as score","B.className as className","B.teacher as teacher");
    csListWrapper.setMainTableAlias("A");
    csListWrapper.leftJoin("course").alias("B").on("cid.eq.fid");
    csListWrapper.eq("A.classid", "field:b.classid");
    List<Classscore> csList = DbrestUtil.selectAll(csListWrapper,Classscore.class);

对应的sql语句: SELECT A.fid as fid,A.sid as sid,A.score as score,B.className as className,B.teacher as teacher FROM main_score AS A left join main_course AS B ON A.cid=B.fid WHERE (A.classid=b.classid)

results matching ""

    No results matching ""

    results matching ""

      No results matching ""