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 只返回一个结果问题处理的更多相关文章

  1. exec sp_spaceused如何只返回一个结果集(转载)

    问: 我想把每天数据库的大小自动保存到table中但是exec sp_spaceused是返回2个表,执行下面的语句出错,如何解决? drop table db_size go create tabl ...

  2. spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

    1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...

  3. Entity Framework 6 Recipes 2nd Edition(11-6)译 -> 从一个”模型定义”函数里返回一个复杂类型

    11-6.从一个”模型定义”函数里返回一个复杂类型 问题 想要从一个”模型定义”函数返回一个复杂类型 解决方案 假设我们有一个病人(patient)和他们访客(visit)的模型,如 Figure 1 ...

  4. VC只运行一个程序实例

    方法有很多,以下只是提供一种用的多的 一. 单文档程序 在程序App类的InitInstance中添加如下代码 BOOL CDDZApp::InitInstance() { /*只运行一个实例*/ / ...

  5. C# JabLib系列之如何保证只运行一个应用程序的实现

    保证只运行一个应用程序的C#实现: using System;using System.Collections.Generic;using System.Linq;using System.Windo ...

  6. Linux编程之《只运行一个实例》

    概述 有些时候,我们要求一个程序在系统中只能启动一个实例.比如,Windows自带的播放软件Windows Medea Player在Windows里就只能启动一个实例.原因很简单,如果同时启动几个实 ...

  7. ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值

    相关知识: 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对 ...

  8. 利用TCP 客户端---->服务端 传送文件到指定路径,并返回一个友好的回馈

    首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: package com.TCP.java; import java.io.File; impor ...

  9. 【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!

    原文:[百度地图API]发布静态图API啦!只需一个网址,即可展示定制百度地图! 摘要: 百度地图静态图API!您无须执行任何“特殊”操作便可在网页上显示此图片. 不需要 JavaScript.我们只 ...

随机推荐

  1. Linux 制作补丁 打补丁 撤销补丁

    1.制作补丁 diff - 逐行比较文件 格式 diff   参数   旧文件/旧文件夹   新文件/新文件夹 -N   将不存在的文件看作是空的 -a   将所有文件都视为文本文件 -u   以合并 ...

  2. elasticsearch 6.x 处理一对多关系使用场景

    思考:一个用户有多篇博客,如何查询博客作者姓名中带“旺”字.博客标题中带“运”的10篇博客列表 elasticsearch关联模型: 一: 应用层做联接2个索引博客作者.博客发布先从博客作者中查询出符 ...

  3. kali openvas安装

    最新的kali需要用apt-get安装后使用 安装 apt-get install openvas 自动设置 openvas-setup 检测设置 openvas-check-setup 如果检测没有 ...

  4. 基于INTEL FPGA硬浮点DSP实现卷积运算

    概述 卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波.而随着人工智能及深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络.本参考设计主要介绍如何基于INTEL 硬浮点的DS ...

  5. Ladder面积

    package com.hanqi; import javax.swing.plaf.synth.SynthSeparatorUI; //梯形 public class Ladder { double ...

  6. iRedMail的搭建过程记录

    iRedMail的搭建和注意事项 经过一段时间的折腾,终于将iRedMail搭建起来了,下面介绍一下搭建的过程,以及注意事项. 注意事项:  1. iRedMail不支持重复安装,如果安装错误,请重置 ...

  7. 安全人员常用的python库

    如果你对漏洞挖掘.逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言.Python不仅语法简单上手容易,而且它还有大量功能强大的库和程序可供我们使用.在这篇文章中,我们会给 ...

  8. Jsp+Servlet+JDBC的使用复习

    最近对JDBC进行了复习,对事物的理解,连接池的使用等部分都有一个复习,所以使用Servlet+JDBC完成了一个小Demo,在这里对这种底层的操作进行总结.框架的使用的确方便了我们的开发,但是底层的 ...

  9. 优化笔记: jxrsfxrxx_D_20140916.gz

    表的重复扫描.   ----------------------------------想进一步研究,继续往下看------------------------------ 1.       所有相似 ...

  10. CentOS7修改ssh端口

    http://www.cnblogs.com/rwxwsblog/p/5756894.html 修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config #Port ...