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>
最新文章
- IIS访问共享文件详解
- Java程序运行时,数据都保存到什么地方?
- java web项目导入到eclipse中变成了java项目的一种情况的解决办法
- 解决js(ajax)提交后端的“ _xsrf&#39; argument missing from POST” 的错误
- UVA 10474 大理石在哪 lower_bound
- Slider 滑动条效果
- POJ1276 - Cash Machine(多重背包)
- Delphi Dcp 和BPL的解释
- windows bat脚本编写
- HTML 5 <;details>; 标签
- 製程能力介紹(SPC introduction) ─ Ck之製程能力解釋
- HDU 1361 Parencodings(栈)
- 201521123096《Java程序设计》第七周学习总结
- name &#39;reload&#39; is not defined解决方法
- C#Razor模板引擎简单使用
- @ResponseBody注解和@RequestBody注解
- sql里的正则表达式
- MathWorks.MATLAB.NET.Arrays.MWArray”的类型初始值设定项引发异常 解决方法
- 关于C中I/O缓冲区的解释
- HDU - 1520 树形DP入门题
热门文章
- jquery对象和dom原生获取的对象是不同的。
- Android Studio的HAXM不支持虚拟机
- Py西游攻关之基础数据类型(一)-数字字符串字节布尔
- 118、Java中String类之取字符串长度
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- C语言动静态链接库使用(笔记)
- system调用
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:上下文类
- B. Uniqueness 删除最小区间内的元素使得剩余元素唯一
- 浏览器之本地缓存存储 localStorage 和 sessionStorage的区别以及用法