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.我们只 ...
随机推荐
- volatile浅析
volatile的意思是不稳定的.易变的,但在多线程中却跟字面意思一毛钱关系没有.作为一个变量修饰符,它主要有两个作用:一个是告诉大家,该变量是一个在多个线程之间均可见的变量:另一个是告诉java虚拟 ...
- SharePoint无法搜索解决
重启服务器后,站点搜索时提示错误,无法进行搜索,进入管理中心搜索管理看到,"查询处理"出错. 解决方法: 停止搜索服务,重新启动,如下图所示 重启服务后,过了几分钟重新查询,查询正 ...
- 在Google的GKE上创建支持Internal Load Balancer的Service
在Google的Kubernetes Engine上发布service,可以采用除On-Promise相同的Cluster IP和NodePort两种方式外,还可以创建LoadBalaner的Serv ...
- 使用maven打包额外的jar
当使用maven打包的时候,部分自己的额外使用的在maven基础库里面是没有的时候: 参考: https://blog.csdn.net/hguisu/article/details/5107268 ...
- MapReduce项目中的一个JVM错误问题分析和解决
最近一周都在查项目的各种问题,由于对原有的一个MapReduce分析数据的项目进行重构,减少了运行时的使用资源,但是重构完成后,在Reduce端总是不定时地抛出JVM的相关错误,非常随机,没有发现有什 ...
- thinkjs 学习笔记
抽空大概看了下thinkjs,总体感觉很不错 不了解的可以看下文档(http://thinkjs.org/doc.html) 介绍就不多说了,看下快速入门 npm install -g thinkjs ...
- OD 实验(十) - 对一个 VB 程序的逆向
前话: VB 程序用 OD 进行逆向的话,可以先查找相关的变量和字符串,以寻找突破口 变量: __vbaVarTstEq __vbaVarCompEq __vbaVarTstNe __vbaVarCo ...
- congst与指针
指向const的指针 //a pointer to const int;指针指向常量对象,相对本指针而言,不能指针指向的对象的常量,不能通过本指针修改常量对象指针,实际的对象不一定的常量 const指 ...
- CSS 引用外部字体
@font-face { font-family: W5; src: url('../font/W5.TTF'); } .wallect .wal_body .textBox{ font-family ...
- [z]【Bash命令行处理】[详解]
(转自:http://www.linuxsir.org/bbs/thread99465.html) 我看很多兄弟写脚本或命令时出现错误的主要原因,是因为不了解bash的命令行处理.我在这里总结了一下, ...