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. fileupload页面跳转找不到原页面的解决方法

    做了个上传图片的功能,之前做的全都对,完全可以实现,但是后来再弄的时候,只要FileUpload控件里面有字(选择了图片),再按button.它尽然不执行button1_click事件,直接页面跳转, ...

  2. 使用sigaction来取代signal作为信号处理器函数

    早期ISO C提供了像这样的函数来支持自定义信号处理 typedef void (*sighandler)(int); sighandler signal(sighandler func); 但是由于 ...

  3. 将xml转为array

    /** * 将xml转为array * @param string $xml * @throws Exception */ public function FromXml($xml) { if (!$ ...

  4. pull同步远程仓 笔记

    一.远程仓库删除文件 远程仓 1.py 本地仓 1.py  2.py pull后 本地仓 1.py 这里的2.py 是没有改动过的情况,如改动了要解决冲突的,见:https://www.cnblogs ...

  5. java web----刷新页面的程序 (重复包括)

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312" ...

  6. Account银行账户

    package com.hanqi; //账户类 public class Account { String ZhangHao; double CunKuanYuE; Account(String Z ...

  7. python学习(二十五) 链表方法

    # 链表 cars = ['a', "b"] print(cars) # 链表长度 print(len(cars)) # 结尾添加元素 cars.append("c&qu ...

  8. StringsUtil字符串工具类---灵活截取

    package com.js.ai.modules.pointwall.interfac; import javax.print.attribute.standard.MediaName; publi ...

  9. 3d标签云(JS版)

    http://www.miaov.com/miaov_demo/3dLable/miaov_demo.html http://www.lijian.net/p/windstagball/index.h ...

  10. socket-简单实现

    server--------------#!/usr/bin/env python # encoding: utf-8  # Date: 2018/6/7 from socket import * s ...