<select id="getMatUnitList" resultMap="matUnitVOMap">
SELECT
a.CODE,
a.min_pack_unit,
a.tenant_id,
c.item_text unitName
FROM
mdm_mat a
LEFT JOIN sys_dict_item c ON a.unit = c.item_value
AND c.dict_code = 'unit'
<where>
<if test="codes != null and codes.size()>0">
a.code IN
<foreach item="item" index="index" collection="codes" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>

SQL2:

    <resultMap id="matUnitVOMap" type="com.donger.mom.mdm.app.material.dto.MatUnitVO">
<result property="code" column="code"/>
<result property="minPackUnit" column="minPackUnit"/>
<result property="unitName" column="unitName"/>
<result property="unitByManufacture" column="unitByManufacture"/>
<result property="unitByStock" column="unitByStock"/>
<result property="unitByPurchase" column="unitByPurchase"/>
<result property="unitByRetail" column="unitByRetail"/>
<result property="unitBySale" column="unitBySale"/>
<result property="tenantId" column="tenant_id"/>
<association property="mdmMatRaw" javaType="com.donger.mom.mdm.infrastructure.mysql.entity.MdmMat"
select="selectMdmMatRaw" column="{code=code,tenantId=tenant_id}"/>
<collection property="ratio" ofType="com.donger.mom.mdm.infrastructure.mysql.entity.MdmMatUnit"
select="selectRatioList" column="code"> </collection>
</resultMap>

SQL3:

 <select id="selectMdmMatRaw" resultType="com.donger.mom.mdm.infrastructure.mysql.entity.MdmMat">
SELECT raw.`code`,
raw.`name`,
cat.`name` category,
b.item_text unit,
d.item_text typeName,
raw.brand,
raw.invoice,
raw.specification,
raw.min_pack_unit,
raw.min_safe_stock,
raw.max_safe_stock,
raw.is_fifo,
raw.pricing_method,
raw.remark,
raw.shelf_life,
raw.lead_time,
raw.create_by,
raw.create_by_name,
raw.create_time,
raw.update_by,
raw.update_by_name,
raw.update_time,
raw.safety_stock_alarm,
raw.expiry_date_alert,
raw.sluggish_material_alarm,
raw.push_flag,
raw.push_time,
raw.is_batch
FROM mdm_mat raw
LEFT JOIN mdm_mat_cat cat on raw.category = cat.id
LEFT JOIN sys_dict_item b ON raw.unit = b.item_value and b.dict_code = 'unit'
left join sys_dict_item d on raw.material_type = d.item_value and d.dict_code = 'matClass'
where raw.code = #{code} and raw.tenant_id = #{tenantId}
</select>

在这里我们要知道的是 association 的用法以及传递多个参数的写法,我这里遇到的问题是多租户要求时,我没有往里面传递租户ID导致查询出来的结果和预期不一致,

这里用到了多个参数的传递。

MybatisPlus的association 属性及案例的更多相关文章

  1. 1.4.2 solr字段类型--(1.4.2.7)字段属性使用案例

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  2. mybatis框架-使用resultMap实现高级结果映射,association属性

    需求:查询数特定角色下的所有用户列表 首先需要在在User类中引用Role类,因为引用了复杂的数据类型,所以要使用association属性进行映射,其实起主要作用的还是resultMap属性. /* ...

  3. HTML5新标签与特性---新表单+新属性----综合案例1

    HTML5新标签与特性 兼容性问题 (ie9 以上的版本) 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTM ...

  4. 【Web】block、inline、inline-block元素与background属性概述(案例实现社交账号注册按钮效果)

    步骤三:社交账号注册按钮效果 文章目录 步骤三:社交账号注册按钮效果 案例的演示与分析 CSS属性与HTML标签 块级元素 内联元素 行内块级元素 CSS的display属性 CSS中的背景图片属性 ...

  5. 【已解决】SpringBoot + Mybatis-plus 实体类属性注解 @TableField 无法获取到数据库值(属性变量名带下划线)

    问题描述: 实体类变量的命名格式 如果采用的是 XX_XX带下划线的形式,那么在低版本的mybatis-plus是不支持和数据库映射的. 如果是单个单词不存在这个问题,如果出现多个单词,尽量采用驼峰式 ...

  6. tomcat配置context的crossContext属性应用案例

    在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问.该属性主要用于 ...

  7. HTML5基础-新增标签+新增属性+布局案例

    html5中常用的结构标签 article 文章 header 头部 nav 导航 section 区域 aside 侧边栏 hgroup 区块的相关信息 figure 定义一组内容及标题 figca ...

  8. javascrip总结42:属性操作案例: 点击盒子,改变盒子的位置和背景颜色

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  9. Android属性动画之ObjectAnimator

    相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就 ...

  10. powerdsigner Association Multiplicity

    这一篇來告诉一个不容易分辨的关系图式:Association(结合)的各种類型,除了了解它的涵义 外,也让各位可以看图說故事,知道它背后所要表达的意义. Association结合 Associati ...

随机推荐

  1. Vue+SpringBoot+ElementUI实战学生管理系统-4.后端API编写

    1.章节介绍 前一篇介绍了项目的表结构设计,这一篇编写后端API,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.项目截图 登录页 列表操作 动态图 ...

  2. 【学习笔记】 - 基础数据结构 :Link-Cut Tree

    发现树剖代码太长了,给我恶心坏了 学个代码短点的能写树剖题的数据结构吧 前置知识 平衡树splay 树链剖分 简介以及优缺点介绍 Link-Cut Tree,也就是LCT,一般用于解决动态树问题 Li ...

  3. 【Android 逆向】【攻防世界】easy-apk

    apk 安装到手机,随便输入点内容,提示错误 2. apk 拖入到jadx中看看 public class MainActivity extends AppCompatActivity { /* JA ...

  4. 常用SQL语句备查

    查询表中某一列是否有重复值 SELECT bizType, COUNT(bizType) FROM Res GROUP BY bizType HAVING COUNT(bizType) > 1 ...

  5. 用Taro写一个微信小程序——Taro3路由传参

    参考https://docs.taro.zone/docs/router 1.传入参数 Taro.navigateTo({ url: '/pages/page/path/name?id=2&t ...

  6. deque双端队列

    # 支持从任意一端增加和删除元素 d = collections.deque() d.extend('abcdefg') d.append('h') d.extendleft(range(6)) # ...

  7. html基础和js基础

    HTML基础 html文件结构 <!DOCTYPE html> 文档类型声明 <html lang="en"></html> 是html标签,称 ...

  8. 现代 CSS 解决方案:accent-color 强调色

    accent-color 是从 Chrome 93 开始被得到支持的一个不算太新属性.之前一直没有好好介绍一下这个属性.直到最近在给一些系统整体切换主题色的时候,更深入的了解了一下这个属性. 简单而言 ...

  9. 代码随想录算法训练营第十三天| 239. 滑动窗口最大值 347.前 K 个高频元素 总结

    239. 滑动窗口最大值 (一刷至少需要理解思路) 卡哥建议:之前讲的都是栈的应用,这次该是队列的应用了.本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解. 题目链接/文章讲解/视频讲解 ...

  10. Java 数组嵌套

    1 public static void main(String[] args) 2 { 3 int[] arr = new int[] {8,6,3,1,9,5,4,7}; 4 int[] inde ...