mybaties association 只返回一个结果问题处理
mybatis xml文件为:
<resultMap id="BaseResultMap" type="com.test.SubscribeOrder">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="channel_id" jdbcType="INTEGER" property="channelId" />
<result column="order_no" jdbcType="VARCHAR" property="orderNo" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="jr_id" jdbcType="VARCHAR" property="jrId" />
<result column="trade_amount" jdbcType="BIGINT" property="tradeAmount" />
<result column="profit" jdbcType="BIGINT" property="profit" />
<result column="trade_time" jdbcType="TIMESTAMP" property="tradeTime" />
<result column="state" jdbcType="TINYINT" property="state" />
<result column="created_date" jdbcType="TIMESTAMP" property="createdDate" />
<result column="modified_date" jdbcType="TIMESTAMP" property="modifiedDate" />
<association property="project" resultMap="projectMap" javaType="com.test.Project"/>
</resultMap>
<resultMap id="projectMap" type="com.test.Project">
<id column="project_id" property="id" jdbcType="INTEGER"/>
<result column="project_name" property="projectName" jdbcType="VARCHAR" />
<result column="project_code" property="projectCode" jdbcType="VARCHAR" />
</resultMap>
sql语句为:
select
a.id,
a.channel_id,
a.order_no,
a.project_id,
b.project_name,
b.project_code
from fp_subscribe_order a inner join fp_project b
on a.project_id = b.id where 1=1
<if test="orderNo!=null">
and a.order_no=#{orderNo}
</if>
<if test="projectCode!=null">
and b.project_code=#{projectCode}
</if>
<if test="projectName!=null">
and b.project_name=#{projectName}
</if>
<if test="userId!=null">
and a.user_id=#{userId}
</if>
结果只会返回一个结果
处理:首先需要说明 select的列不需要和对应的resultMap的元素数量一一对应;mybatis使用association 时必须要保证key和association并列,简单来说就是select后面的列很多都可以省但BaseResultMap中的数据库字段不可以省,修改过的sql语句为
<select id="findSubscribeOrdersByPage" resultMap="BaseResultMap">
select
a.id,
a.channel_id,
a.order_no,
a.user_id,
a.jr_id,
a.trade_time,
a.trade_amount,
a.profit,
a.state ,
a.created_date,
a.modified_date,
a.project_id,
b.project_name,
b.project_code
from fp_subscribe_order a inner join fp_project b
on a.project_id = b.id where 1=1
<if test="orderNo!=null">
and a.order_no=#{orderNo}
</if>
<if test="projectCode!=null">
and b.project_code=#{projectCode}
</if>
<if test="projectName!=null">
and b.project_name=#{projectName}
</if>
<if test="userId!=null">
and a.user_id=#{userId}
</if>
</select>
mybaties association 只返回一个结果问题处理的更多相关文章
- exec sp_spaceused如何只返回一个结果集(转载)
问: 我想把每天数据库的大小自动保存到table中但是exec sp_spaceused是返回2个表,执行下面的语句出错,如何解决? drop table db_size go create tabl ...
- spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable
1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...
- Entity Framework 6 Recipes 2nd Edition(11-6)译 -> 从一个”模型定义”函数里返回一个复杂类型
11-6.从一个”模型定义”函数里返回一个复杂类型 问题 想要从一个”模型定义”函数返回一个复杂类型 解决方案 假设我们有一个病人(patient)和他们访客(visit)的模型,如 Figure 1 ...
- VC只运行一个程序实例
方法有很多,以下只是提供一种用的多的 一. 单文档程序 在程序App类的InitInstance中添加如下代码 BOOL CDDZApp::InitInstance() { /*只运行一个实例*/ / ...
- C# JabLib系列之如何保证只运行一个应用程序的实现
保证只运行一个应用程序的C#实现: using System;using System.Collections.Generic;using System.Linq;using System.Windo ...
- Linux编程之《只运行一个实例》
概述 有些时候,我们要求一个程序在系统中只能启动一个实例.比如,Windows自带的播放软件Windows Medea Player在Windows里就只能启动一个实例.原因很简单,如果同时启动几个实 ...
- ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
相关知识: 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对 ...
- 利用TCP 客户端---->服务端 传送文件到指定路径,并返回一个友好的回馈
首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: package com.TCP.java; import java.io.File; impor ...
- 【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!
原文:[百度地图API]发布静态图API啦!只需一个网址,即可展示定制百度地图! 摘要: 百度地图静态图API!您无须执行任何“特殊”操作便可在网页上显示此图片. 不需要 JavaScript.我们只 ...
随机推荐
- checkstyle简单使用说明
checkstyle对检查代码规范问题的总结,虽然还不够只能,但已经比较强大.1.Cyclomatic Complexity is X (max allowed is X). 问题说明:圈复杂度过高. ...
- NanoPiM1开箱测试
等了快一周了,终于那M1与那外壳一起给我寄过来了. 上午收到,开箱图就不亮了,来一上好电的图! 一同购买来的MSD卡里什么也没有,上电测试时只看到绿色的灯微微亮(这是一个BUG吗!!!!哈哈). 所以 ...
- Unit02: Servlet工作原理
Unit02: Servlet工作原理 点击注册按钮,返回注册信息 package web; import java.io.IOException; import java.io.PrintWrite ...
- rapidjson的read和write的sample
头文件 #include "json/document.h" #include "json/prettywriter.h" #include "jso ...
- 关于NHibernate的一些代码
SessionManager using System; using System.IO; using System.Runtime.Serialization; using System.Runti ...
- Gradle: Can't load library: native-platform.dll
Eclipse 导入 Gradle project 时总是报错:Can't load library: native-platform.dll. 解决方案: 进入 Windows -> Pref ...
- PyQt 5布局管理
绝对定位 绝对定位有以下限制 1.如果调整窗口,控件的大小和位置不会改变 2.在各种平台上应用程序看起来不会一样 3.如果改变字体,我们的应用程序的布局就会改变 4.如果我们决定改变我们的布局,我们必 ...
- 浏览器工作原理(三):js运行机制及Event Loop
参考:https://segmentfault.com/a/1190000012925872#articleHeader4 一.为什么有Event Loop Javascript设计之初就是一门单线程 ...
- buffer cache 深度解析
本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构.然后结合各个后台进程(包括DBWRn.CKPT.LGWR等)深入介绍了oracle对于buffer cache的管理 ...
- poj2356 Find a multiple
/* POJ-2356 Find a multiple ----抽屉原理 Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total S ...