mybatis关于级联查询结果集嵌套映射对象非列表的处理问题
工作中遇到这么一个问题,嵌套查询,返回json的时候,作为属性,deviceFields是一个device中的一个对象属性,在json返回的时候想要得到的应该是deviceFields:{ 具体属性}
但是实际上我发现我返回的确实 deviceFields:[{ 具体属性}],多了个中括号
这明显是把查询的结果作为了一个集合,而没有映射为一个对象,仔细查看,原来是在association上应该添加上javaType的对应的对象路径,而我把这个给漏掉了。下面是正确的
<resultMap type="map" id="getDeviceListResult">
<result property="deviceId" column="deviceId"/>
<association property="deviceFields" column="deviceId" javaType="com.xxx.cloud.entity.DeviceFields" select="com.xxx.cloud.dao.DeviceFieldsMapper.selectByDeviceId"></association>
<collection property="pointDataList" column="deviceId" select="selectxxxDevicePointDataList"></collection>
</resultMap>
<select id="getDeviceListByUserId" parameterType="map" resultMap="getDeviceListResult">
SELECT d.id deviceId,d.device_no deviceNo,d.gateway_uid uid,d.ext_addr extAddr,d.endpoint 'endpoint',d.device_name deviceName,
device_type 'type',d.sub_device_type subType,d.product_id productId,d.company_id companyId,d.model model,d.version 'version',
d.start_time startTime,d.del_flag delFlag
FROM d_device d, d_device_fields f,d_device_user_bind dub
WHERE f.del_flag=0
AND d.del_flag=0
AND dub.del_flag=0
AND d.company_id=#{companyId}
AND d.`product_id`=#{productId}
AND d.id=f.device_id
AND d.gateway_uid = dub.uid
AND dub.user_id=#{userId}
<if test="status != null">
AND f.`online`=#{status}
</if>
<if test="rent != null and rent == 0">
AND f.`rent` IS NULL
</if>
<if test="rent != null and rent != 0">
AND f.`rent` = #{rent}
</if>
<if test="content != null">
AND ( d.device_name like #{content} OR d.model like #{content})
</if>
<if test="pointStatus != null">
AND EXISTS (
SELECT 1
FROM d_device_point_data dpd
WHERE dpd.device_id = d.id
AND dpd.del_flag = 0
AND dpd.point_index = 23
AND dpd.value = #{pointStatus}
)
</if> order by f.online desc
</select>
mybatis关于级联查询结果集嵌套映射对象非列表的处理问题的更多相关文章
- Mybatis 之级联查询 一对多配置
Mybatis级联 查询相对于hibenate是有点麻烦,但是相应好处也是有的,Mybatis轻量.根据自己要的字段配置方便 一对多配置用 <collection property=&quo ...
- MyBatis一对多映射简单查询案例(嵌套Mapper映射文件中的sql语句)
一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...
- mybatis ----数据级联查询(多对一)
工程的目录结构: 有两个表,一个文章表article ,一个用户表user. create table article (id int(11) not null auto_increment, use ...
- MyBatis一对多映射简单查询案例(嵌套结果)
一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...
- LayUI table表格控件 如何显示 对象中的属性(针对Mybatis的级联查询--一对一情况)
1.entity如下: 2.Mybatis的Mapper.xml文件如下 <resultMap id="BaseResultMapPlus" type="dicIt ...
- Mybatis 级联查询 (一对多 )
后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...
- hibernate框架之-查询结果集返回类型
Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式. 开发中用Hibernate进行数据库查询,用的是SQL.原来需要查询一个表的几乎所有字段,所以我使用了addE ...
- 5.Mybatis的输出映射(就是对查询的结果集的映射)
Mybatis的输出映射,也就是对查询结果集的一个映射,主要有两种: 1.resultType(不需要配置,可以直接用) 一般是实体类 基本类型也可以 2.resultMap(需要配置resultMa ...
随机推荐
- 「Luogu P3680 凸轮廓线」
一道神奇的计算几何题 前置芝士 正三角形,正方形,圆:什么,您都会,那真是太好了. 三角函数的运用:因为我不是很想在这一块写太多,具体可以自行百度. 推导公式 对于一串是圆和正方形开头和结尾时是十分好 ...
- Eclipse中java代码注释变成乱码的问题
今天在查看曾经写过的代码时发生了一件很是让人头疼的事: 我写的所有注释全部都变成了了乱码,曾经刚入门时也是经常遇到类似的问题,解决起来很快,每天可能都会在工作空间里看到,但是随着时间的推移,写代码的规 ...
- 重構電影網源碼 1905.com - 數據庫結構表
最近閒來無事,想著克隆一個電影網站. WWW.ROAK.COM 技術語言:JAVA EE * j2ee核心组件:jsp.servlet.jdbc.ejb.jndi * 数据通信:xml标记语言 * ...
- CR LF CR/LF
CR:Carriage Return,对应ASCII中转义字符 '\r' (0x0D),表示回车LF:Line Feed,对应ASCII中转义字符 '\n' (0x0A),表示换行CRLF:Carri ...
- JS操作网页中的iframe
/* *parent.html */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- 【剑指Offer面试编程题】题目1370:数组中出现次数超过一半的数字--九度OJ
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 ...
- SAP BO WebI 如何连接webi server folder下面的EXCEL文件作为数据源
昨天做Webi Report,需要连接一个在Webi Server Folder下面的EXCEL文件作为数据源,然后再去生成相应的报表,找了半天才找到可以连接Webi Server Folder的EX ...
- popupwindow使用之异常:unable to add window -- token null is not valid
使用popwindow中又碰到一个白痴问题,在此留作纪念,希望对大家有帮助 popupwindow之所以叫这个名字,肯定是要从某个地方弹出啦,但是从哪个地方呢?必须是指定一个view嘛 void an ...
- vmware workstation导入ovf文件报错:未通过OVF规范一致性或虚拟硬件合规性检查
转自:https://blog.csdn.net/zs15yy/article/details/73793585 报错如下: 原因:这是因为OVF 版本不同导致的,VMware Workstation ...
- 070、Java面向对象之深入贯彻对象引用传递
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...