mybatis mapper.xml 写关联查询 运用 resultmap 结果集中 用 association 关联其他表 并且 用 association 的 select 查询值 报错 java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for mybatis.map
用mybaits 写一个关联查询 查询商品表关联商品规格表,并查询规格表中的数量、价格等,为了sql重用性,利用 association 节点 查询 结果并赋值报错
商品表的mapper文件为GooodsMapper.xml 规格表的mapper 文件为GoodsSpecificationsMapper.xml
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for mybatis.map
GooodsMapper.xml的内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chengpin.mapper.GoodsMapper">
<insert id="save" parameterType="Goods">
insert into t_goods
(no,category,title,selling_point,cover_picture,unit_price,freight_template,shop_category,
service_commitment,return_commitment,guarantee_service,
provide_invoice,is_shelf,shelf_time,state,purchasing_place,release_time,publisher)
values
(GOODS_SEQUENCE.nextval,#{category},#{title},#{selling_point},#{cover_picture},#{unit_price},
#{freight_template},#{shop_category},#{service_commitment},
#{return_commitment},#{guarantee_service},#{provide_invoice},#{is_shelf},#{shelf_time},#{state},#{purchasing_place},
#{release_time},#{publisher})
<selectKey keyProperty="no" order="AFTER" resultType="java.lang.String">
select GOODS_SEQUENCE.CURRVAL from DUAL
</selectKey>
</insert> <select id="selectGoodsInfoTotalSize" parameterType="Map" resultType="Integer">
select
count(*)
from
T_GOODS
WHERE
category = #{categoryno}
</select> <select id="selectGoodsInfo" parameterType="Map" resultType="Map">
select
goodsno,goodstitle,goodsprice,goodsimgurl
from (
select
g.cover_picture goodsimgurl,
g.no goodsno,
g.title goodstitle,
g.unit_price goodsprice,
rownum num
from T_GOODS g
where g.category = #{categoryno}
and rownum <= #{endPage}
order by
<if test="@com.chengpin.core.util.StringUtils@isNotEmpty(priceUp)">
g.unit_price desc,
</if>
<if test="@com.chengpin.core.util.StringUtils@isNotEmpty(priceDown)">
g.unit_price asc,
</if>
<if test="@com.chengpin.core.util.StringUtils@isNotEmpty(last)">
g.release_time desc,
</if>
g.no desc
)
where
num >= #{startPage}
</select> <!-- 根据用户编号和商品状态查询商品信息 -->
<select id="selectGoodsByState" resultType="Goods">
select * from t_goods where publisher=#{user_no} and state=#{state}
</select>
<select id="selectGoodsDetailsByGoodsNo" parameterType="Map" resultType="Map">
select
g.no "no",
g.selling_point "sellpoint",
g.title "title",
g.unit_price "original_price",
gs.price "present_price",
gs.quantity "quantity",
tgi.content "goodscontent"
from
t_Goods g
left join
T_GOODS_SPECIFICATIONS gs
on g.no = gs.goods_no
left join
T_GOODS_INTRODUCTION tgi
on tgi.goods_no = g.no
where g.no = #{goodsno}
<if test="@com.chengpin.core.util.StringUtils@isNotEmpty(goodscolor)">
and gs.color_value = #{goodscolor}
</if>
and rownum = 1
</select> <select id="selectGoodsInfoAndTotalPriceByUserNoState" resultMap="goodsInfoAndTotalPrice">
select g.no goods_no,g.title,g.release_time,g.shelf_time,g.off_shelf,g.cover_picture
from t_goods g where g.publisher = #{user_no} and g.state=#{state}
group by g.no,g.title,g.release_time,g.shelf_time,g.off_shelf,g.cover_picture
order by g.release_time desc
</select> <resultMap type="Goods" id="goodsInfoAndTotalPrice">
<id property="no" column="no" />
<result property="title" column="title"/>
<result property="release_time" column="release_time"/>
<result property="shelf_time" column="shelf_time"/>
<result property="off_shelf" column="off_shelf"/>
<association property="total" column="goods_no" javaType="Integer"
select="mybatis.mapper.GoodsSpecificationsMapper.selectGoodsTotalByGoodsNo"/>
<association property="lowest_price" column="goods_no" javaType="Double"
select="com.chengpin.mapper.GoodsSpecificationsMapper.selectLowestPrice"/>
</resultMap>
</mapper>
GoodsSpecificationsMapper.xml 内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chengpin.mapper.GoodsSpecificationsMapper">
<!-- 保存商品规格方法 -->
<insert id="save">
insert into t_goods_specifications
(no,goods_no,color_value,size_value,quantity,price)
values
(goods_specifications_sequence.nextval,#{goods_no},
#{specifications.color_value},#{specifications.size_value},#{specifications.quantity},#{specifications.price})
</insert> <!-- 根据商品编号查询商品总数 -->
<select id="selectGoodsTotalByGoodsNo" parameterType="String" resultType="Integer">
select sum(quantity) total from t_goods_specifications where goods_no = #{goods_no}
</select> <!-- 根据商品编号查询商品最低价 -->
<select id="selectLowestPrice" parameterType="String" resultType="Double">
select min(price) from t_goods_specifications where goods_no = #{goods_no}
</select>
</mapper>
最后发现错误来源于此
<association property="total" column="goods_no" javaType="Integer"
select="mybatis.mapper.GoodsSpecificationsMapper.selectGoodsTotalByGoodsNo"/>
原来是我吧select 中 对GoodsSpecificationsMapper.xml 文件的 select 查询调用的 空间写错了
我写的是src 路径 并不是 写的 mapper 的namespace 空间位置 把值改如下 便正确了
<association property="total" column="goods_no" javaType="Integer"
select="com.chengpin.mapper.GoodsSpecificationsMapper.selectGoodsTotalByGoodsNo"/>
mybatis mapper.xml 写关联查询 运用 resultmap 结果集中 用 association 关联其他表 并且 用 association 的 select 查询值 报错 java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for mybatis.map的更多相关文章
- 搭建Mybatis 出现 Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for mapper.BatchCustomer.findBatchCustomerOneToOne
Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection doe ...
- java - mybatis:java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for
当遇见java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for 错误的时候 ...
- java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bjsxt.mapper.PeopleMapper
报错信息: Type Exception Report Description The server encountered an unexpected condition that prevente ...
- Mybatis 报错 java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Inte
like ‘%java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.la ...
- mybatis报错: java.lang.IllegalArgumentException invalid comparison: java.util.Date and java.lang.String
原因是在使用<if> 进行条件判断时, 将datetime类型的字段与 ' ' 进行了判断,导致的错误 解决, 只使用 <if test="createTime != n ...
- nested exception is java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport': ...
- Caused by: java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.bj186.crm.mapper.UserMapper.Integer
在使用SSM整合myBatis的过程中遇到了这个问题. 问题的原因: 把parameterType错误的写成了parameterMap 解决办法: 将parameterMap修改为parameterT ...
- mybatis异常:Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for。。。。。。
框架环境:ssm 昨天下午技术经理更新了下表结构,多加了一个字段. 之后我根据新的mapper.xml文件写了增删改查的操作.重新启动之后不是这个错就是那个错,一大堆错误,头疼. 像类似于NoSuch ...
- Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.st.mapper.UserMapper.userBaseMap
mybatis出现此异常,可能是因为 ***Mapper.xml 文件中存在重名对象,一不小心重复启动了mybatis的逆向工程. 以为会覆盖掉以前生成的,没想到是新生成的和之前生成的重复了 解决:把 ...
随机推荐
- salesforce 零基础学习(六十七)SingleEmailMessage 那点事
在salesforce开发中,发送邮件是一个很常见的功能.比如在进入审批流以后的通过和拒绝的操作需要发送邮件给记录的owner,和其他系统交互以后更改了某些状态通知相关的User或者Contact等等 ...
- flask mega-tutorial 1.0 documentation学习记录
本文主要是记录在[用户登录]一节中出现的问题: 报错位置是在 if g.user is not None and g.user.is_authenticated(): return redirect( ...
- XJOI1652Matrix67的情书
Matrix67的情书 恺撒大帝曾经使用过这样一种加密术:对于明文中的每个字母,恺撒大帝会用它后面的第t个字母代替.例如,当t=3时,字母A将变成C,字母B将变成D,--,字母Y将变成A,字母Z将变成 ...
- Visual Studio Code 使用Chrome Debug 代码
一.添加插件 Debugger for Chrome,点击安装,安装完成之后,启动 二.配置启动参数 1.按 F5,出现界面如图,选择 Chrome 2.然后会打开配置文件 launch.json 3 ...
- Python可视化学习(2):Matplotlib快速绘图基础
Matplotlib将大部分的绘图对象都封装成为对象,故理论上所有的图表元素(如Line2D, Text,Label等)都是对象,都可以将其在图表中提取出来并配置实例的属性.同时,Matplotlib ...
- Java事物基础总结
1.什么是事物? 事物是逻辑上的的一种操作,这个操作过程中的每一个元素要么全部成功,要么全部失败.例如,银行转账过程视为一个事物,转出过程和转入过程要求全部成功或全部失败,通过提交事物或者回滚事物实现 ...
- 《Python自然语言处理》第二章 学习笔记
import nltk from nltk.book import * nltk.corpus.gutenberg.fileids() emma = nltk.corpus.gutenberg.wor ...
- How to trace the Geolocation of network traffic
A case about suspicious malware App. A forensic examiner capatured some pcap files and he'd to know ...
- [编织消息框架][网络IO模型]BIO
既然跟网络内容有关就不得不学习网络IO模型,时代在进步,技术也在进步,采取使用那种网络IO模型就已经确定应用程序规模 阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都 ...
- JavaScript的XMLHttpRequest对象
ajax的核心技术是XMLHttpRequest对象,简称XHR. //支持IE7及更高的版本 function createXML() { if(typeof XMLHttpReqquest!=&q ...