主要用来做主子表的联查
<resultMap type="Project" id="ProjectResult">
<result property="id" column="id"/>
<result property="projectNo" column="project_no"/>
<result property="contractId" column="contract_id"/>
<result property="customerName" column="customer_name"/>
<result property="province" column="province"/>
<collection property="orderlist" javaType="java.util.ArrayList" ofType="com.fferp.sale.domain.File">
<id column="b_id" property="id" />
<result column="b_url" property="url" />
<result column="b_name" property="name" />
</collection>
</resultMap>
这是主表跟他的文件表
property="orderlist" property属性是用来标识子表的数据在主表的里的名字
如果主表跟子表列名有重复的,一定要起个别名区别一下
<select id="selectProjectList" parameterType="Project"
resultMap="ProjectResult">
select
a.id AS id,
a.project_no,
a.contract_id AS contract_id,
a.customer_name AS customer_name,
a.province AS province,
b.id as b_id,
b.url as b_url,
b.name as b_name
from
order a
LEFT JOIN order_file b on a.id = b.relation_id
</select>
实体类:主表
public class Project {
/** ID */
private String id;
/** 项目号 */
private String projectNo;
/** 合同表ID */
private String contractId;
/** 客户名称 */
private String customerName;
/** 所属省 */
private Integer province;
/** 文件 */
private List<SaleCommonFile> orderlist;
}
子表
public class File {
private String id;
/** 关联ID */
private String relationId;
/** 文件路径 */
private String url;
/** 文件名称 */
private String name;
}
更多推荐
mybatis collection 标签的使用
发布评论