版权声明
版权声明:本文由 低调小熊猫 发表于 低调小熊猫的博客
转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人qq:2696284032
文章链接:https://aodeng.cc/archives/mybatisgaoji
简介
聚集元素用来处理“一对多”的关系。需要指定映射的Java实体类的属性,属性的javaType(一般为ArrayList);列表中对象的类型ofType(Java实体类);对应的数据库表的列名称;
额,估计这样说大家听不懂,简单的意思就是把两张表联系起来,用于解决一些奇怪的需求
代码
1.定义简单的sql片段
<!-- 基本查询-->
<sql id="vo_select">
SELECT
vo.expenseId,
vo.projectId,
vo.expenseUserId,
sua.realName as expenseUserName,
vo.expenseTime,
vo.expenseTypeId,
vo.beneficialDepartmentId,
sd.name as beneficialDepartmentName,
vo.currencyId,
vo.money,
vo.paperCheckerId,
vo.paperCheckerTime,
vo.paidDepartmentId,
vo.paidUserId,
vo.paidTime,
vo.expenseNote,
vo.description,
vo.currentStatus,
vo.invoiceAmount,
vo.paperFlag,
vo.recordFlag,
vo.createUserId,
vo.createTime
FROM p_expense vo
INNER JOIN sys_user_archive sua ON sua.userId=vo.expenseUserId
INNER JOIN sys_department sd ON sd.departmentId=vo.beneficialDepartmentId
</sql>
2.查询条件拼接,返回resultMap
<select id="findAll" parameterType="Pasv" resultMap="pexpenseMap">
<include refid="vo_select"/>
WHERE 1=1
<!--根据登陆人判断流程审核步骤的人是否一样 -->
<if test="vo.userId !=null and vo.userId !=''">
AND
(
EXISTS(
select 0 from p_expense_flow pef
where pef.flag=0 and pef.checkUserIds like concat('%#',#{vo.userId},'#%')
AND pef.expenseID=vo.expe