mybatis或mybatis-plus嵌套查询语句,嵌套查询条件为多字段。
1. 定义JavaBean
@Data
@Accessors(chain = true)
@ApiModel(value = "WflowLogTableEntityDto", description = "工作流调度日志数据传输")
public class WflowLogTableEntityDto {
@ApiModelProperty(value="执行批次ID")
@TableId(value = "exec_id", type = IdType.INPUT)
private String execId;
@ApiModelProperty(value="工作流ID")
@TableField("wflow_id")
private String wflowId;
// 省略...这里本来有很多字段的,暂时省略
@ApiModelProperty(value="子流程节点日志")
@TableField(exist = false)
private List<WflowLogdetailTableEntityDto> nodes;
}
2. 定义mapper.xml查询
<resultMap id="WflowLogTableEntityDtoMap"
type="com.xxx.dto.WflowLogTableEntityDto">
<id column="exec_id" property="execId"/>
<id column="wflow_id" property="wflowId"/>
<collection property="nodes"
ofType="com.xxx.dto.WflowLogdetailTableEntityDto"
javaType="ArrayList"
column="{wflowId=wflow_id, execId=exec_id }"
select="com.xxx.mapper.IWflowLogdetailTableMapper.getWflowNodeLogDetail"
>
</collection>
</resultMap>
多字段嵌套查询定义column="{wflowId=wflow_id, execId=exec_id }",其中wflowId,execId为嵌套接口的绑定的字段名字,如下图蓝色框框中的字段名,
wflow_id和exec_id 为外层接口的返回字段名。通过外层的返回结果相应的字段值,绑定到嵌套的接口查询,查询嵌套的结果集。
公司项目,隐藏了部分内容