MybatisPlus的association 属性及案例
<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.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(日期 ...
- mybatis框架-使用resultMap实现高级结果映射,association属性
需求:查询数特定角色下的所有用户列表 首先需要在在User类中引用Role类,因为引用了复杂的数据类型,所以要使用association属性进行映射,其实起主要作用的还是resultMap属性. /* ...
- HTML5新标签与特性---新表单+新属性----综合案例1
HTML5新标签与特性 兼容性问题 (ie9 以上的版本) 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTM ...
- 【Web】block、inline、inline-block元素与background属性概述(案例实现社交账号注册按钮效果)
步骤三:社交账号注册按钮效果 文章目录 步骤三:社交账号注册按钮效果 案例的演示与分析 CSS属性与HTML标签 块级元素 内联元素 行内块级元素 CSS的display属性 CSS中的背景图片属性 ...
- 【已解决】SpringBoot + Mybatis-plus 实体类属性注解 @TableField 无法获取到数据库值(属性变量名带下划线)
问题描述: 实体类变量的命名格式 如果采用的是 XX_XX带下划线的形式,那么在低版本的mybatis-plus是不支持和数据库映射的. 如果是单个单词不存在这个问题,如果出现多个单词,尽量采用驼峰式 ...
- tomcat配置context的crossContext属性应用案例
在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问.该属性主要用于 ...
- HTML5基础-新增标签+新增属性+布局案例
html5中常用的结构标签 article 文章 header 头部 nav 导航 section 区域 aside 侧边栏 hgroup 区块的相关信息 figure 定义一组内容及标题 figca ...
- javascrip总结42:属性操作案例: 点击盒子,改变盒子的位置和背景颜色
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- Android属性动画之ObjectAnimator
相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就 ...
- powerdsigner Association Multiplicity
这一篇來告诉一个不容易分辨的关系图式:Association(结合)的各种類型,除了了解它的涵义 外,也让各位可以看图說故事,知道它背后所要表达的意义. Association结合 Associati ...
随机推荐
- Java核心技术卷1:基础知识(原书第10版)
本书为专业程序员解决实际问题而写,Java基础知识面覆盖很完整,可以帮助你深入了解Java语言和库.在卷I中,Horstmann主要强调基本语言概念和现代用户界面编程基础,深入介绍了从Java面向对象 ...
- Java I/O 教程(九) FileWriter和FileReader
FileWriter Java FileWriter 用于往文件中写入字符数据. 不像FileOutputStream类,你无需转换字符串成字节数组,因为它提供了直接写字符串的方法. 类定义 publ ...
- Innodb 存储引擎表
目录 索引组织表 Innodb逻辑存储结构 表空间 段 区 页 行 Innodb 行记录格式 Compact Redundant 行溢出数据 Compressed 和 Dynamic 行记录格式 ch ...
- go控制grpc的metadata
grpc让我们可以像本地调用一样实现远程调用,对于每一次的RPC调用中,都可能会有一些有用的数据,而这些数据就可以通过 metadata来传递.metadata是以key-value的形式存储数据的, ...
- django学习第十天---ajax请求和JsonResponse
AJAX 它是js的功能,特点:异步请求,局部刷新 简单请求示例 基于jquery的ajax请求 异步请求,不会刷新页面,页面上用户之前输入的数据都不会丢失 <p>下面是ajax请求< ...
- django中如果不是第一次迁移的时候就配置AUTH_USER_MODEL(用来告知django认证系统识别我们自定义的模型类),那么该如何解决才能让django的认证系统识别且不会报未知错误?
Django认证系统中提供的用户模型类及方法很方便,我们可以使用这个模型类,但是字段有些无法满足项目需求,如还需要保存用户的手机号,需要给模型类添加额外的字段. Django提供了django.con ...
- 【LeetCode哈希表#3】快乐数(set)
快乐数 力扣题目链接(opens new window) 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程 ...
- Gitlab 16.9.0 用Access Token注册Gitlab Runner
升级到当前最新版Gitlab之后 在"管理中心"的"CI/CD"--"Runners"下,提示以前的那种注册令牌的方式已经过时了. 点击右上 ...
- 【Azure Cloud Service】Cloud Service(Classic) 迁移失败,找不到解决方案怎么办?
问题描述 很老很老的云服务,在迁移到 Cloud Service(Extended Support)[云服务外延支持] 时,迁移的验证步骤不通过,因为资源中没有包含虚拟网络(Virtual Netwo ...
- 【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
问题描述 在Java应用中,使用 Lettuce 作为客户端SDK与Azure Redis 服务连接,当遇见连接断开后,长达15分钟才会重连.导致应用在长达15分的时间,持续报错Timeout 问题解 ...