效果:同时展示主表与子表信息,主表task:子表file 是一对多关系

方法:

步骤一:在task的domain中添加子表的list集合,用于查询时展示

/** File明细信息 */
private List<DbFile> DbFileList;
public List<DbFile> getDbFileList()
{
    return DbFileList;
}

public void setDbFileList(List<DbFile> DbFileList)
{
    this.DbFileList = DbFileList;
}
@Override
public String toString() {
    return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("taskName", getTaskName())
            .append("taskType", getTaskType())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("createName", getCreateName())
            .append("beizhu", getBeizhu())
            .append("pro1", getPro1())
            .append("pro2", getPro2())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("DbFileList", getDbFileList())
            .toString();
}

 步骤二:在task的mapper中写select关联查询语句与ResultType

<select id="listTaskFile" parameterType="DbTask" resultMap="DbTaskDbFileResult">
    select a.id,
           a.project_id,
           a.task_name,
           a.task_type,
           a.create_time,
           a.update_time,
           a.create_by,
           a.beizhu,
           a.pro1,
           a.pro2,
           a.update_by,
           a.del_flag,
           b.id,
           b.task_id,
           b.file_name,
           b.file_type,
           b.file_location
    from db_task a
             left join db_file b on b.task_id = a.id
    <where>
        <if test="projectId != null "> and project_id = #{projectId}</if>
        <if test="taskName != null  and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
        <if test="taskType != null  and taskType != ''"> and task_type = #{taskType}</if>
    </where>
</select>

 步骤三:在界面上展示

 

 

 

Logo

快速构建 Web 应用程序

更多推荐