数据库表:
approve表 id , case_id , approve_type
approve_suggest表 id , approve_id , re , create_time1. 一(approve)对多(approve_suggest)的关系
2. 按照approve_type又可以分为多种approve记录pojo:
ApproveList.java
private String id;
private String approveType;
private List<ApproveContent> appConts;ApproveContent.java
private String id;
private String re;
private Date create_time;Mapper.java
List<ApproveList> queryAllApprove(@Param("caseId")String caseId);怎么写xml。
approve表 id , case_id , approve_type
approve_suggest表 id , approve_id , re , create_time1. 一(approve)对多(approve_suggest)的关系
2. 按照approve_type又可以分为多种approve记录pojo:
ApproveList.java
private String id;
private String approveType;
private List<ApproveContent> appConts;ApproveContent.java
private String id;
private String re;
private Date create_time;Mapper.java
List<ApproveList> queryAllApprove(@Param("caseId")String caseId);怎么写xml。
<select id="queryAllApprove" resultMap="ApproveList">
select * from approve app, approve_suggest app_s where app.app_list_id=app_s.approve_id and app.case_id=#{caseId}
</select>
<!-- 结果集内容-->
<resultMap type="pojo.ApproveList" id="ApproveList">
<!--ApproveList实体属性和表对应的字段的映射 -->
<id property="id" column="app_list_id"/>
<result property="case_id" column="case_id"/>
<result property="approveType" column="approveType"/>
<!-- ApproveList中属性集合的实体与表对应的字段映射 -->
<collection property="appConts" ofType="pojo.ApproveContent">
<id property="id" column="app_con_id"/>
<result property="approve_id " column="approve_id"/>
<result property="re" column="re"/>
<result property="create_time" column="create_time"/>
</collection>
</resultMap>
两个实体里是不是缺少属性啊,ApproveList里缺了一个case_id属性,ApproveContent里缺少了一个approve_id 属性,没有进行测试,可以试试,不行的话微调一下应该就可以了!
查出来这个样子↓↓↓↓↓↓↓
approveType1:
approveCont1: re11 ,time11;
approveCont2: re12 ,time12; approveType2:
approveCont1: re21 ,time21;
approveCont2: re22 ,time22;
查出来咋成这样子了↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
我写的xml这样的,请问是不是有问题啊,
用审批类型数据左关联审批明细resultMap 外面还有一层ApproveList
查出来咋成这样子了↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
我写的xml这样的,请问是不是有问题啊,
你的意思是想一次查出来审批的集合、审批信息的集合?下面的应该可以,可以试试!
<resultMap id="approve" type="pojo.ApproveList" >
<id property="id" column="app_list_id"/>
<result property="case_id" column="case_id"/>
<result property="approveType" column="approveType"/>
</resultMap>
<!-- 审批类型返回集合 -->
<resultMap id="ApproveList" type="pojo.ApproveList" extends="approve">
<collection property="appConts" resultMap="appContsList"></collection>
</resultMap>
<!-- 审批信息返回集合 -->
<resultMap id="appContsList" type="pojo.ApproveContent">
<id property="id" column="app_con_id"/>
<result property="approve_id " column="approve_id"/>
<result property="re" column="re"/>
<result property="create_time" column="create_time"/>
</resultMap>
<select id="queryAllApprove" resultMap="ApproveList">
select * from approve app, approve_suggest app_s where app.app_list_id=app_s.approve_id and app.case_id=#{caseId}
</select>
我要查的是一个集合 审批列表List<Approve>,每个审批都有对应的审批类型type和审批内容List<ApproveConts>,审批内容ApproveConts包含了审批时间time,审批标记。
例子都是相当于查一个审批类型的内容,不是所有的审批类型的内容。Approve.java
private String type;
private String List<ApproveConts>那些例子只是查询一个Approve的内容,我查的是包含多个Approve的列表。
<id property="id" column="id" />
<result property="approveType" column="approve_type" />
<collection property="appConts" javaType="java.util.ArrayList"
ofType="com.zyxy.common.ProgressContentVO" column="id" select="dosome"></collection>
</resultMap> <select id="dosome" resultType=""com.zyxy.common.ProgressContentVO"
parameterType="java.lang.Integer">
select
id,
re,
create_time as createTime
from case_approve_suggest a where id =#{id}
</select> <select id="findDeptById" parameterType="java.lang.Integer"
resultMap="ApproveList">
select * from case_approve a where a.id=#{id}
</select>
<resultMap type="com.zyxy.common.vo.CaseProgressListVO" id="approveList">
<id property="id" column="id"/>
<result property="approveType" column="approve_type"/>
<collection property="progressCont" javaType="java.util.ArrayList" ofType="com.zyxy.common.vo.ProgressContentVO" column="id" select="queryApproveCont"></collection>
</resultMap>
<select id="queryApproveCont" resultType="com.zyxy.common.vo.ProgressContentVO">
SELECT
,
create_time createTime
FROM
case_approve_suggest
WHERE
approve_id=#{approveId}
</select>
<select id="queryCaseProgress" resultMap="approveList">
SELECT
ca.id id,
ca.approve_type approveType
FROM
case_approve ca
LEFT JOIN
case_request_info cri
ON
cri.id=ca.request_id
WHERE
ca.case_id=#{caseId}
AND
cri.request_type=#{requestFlag}
</select>