mybatis传递多种参数问题

1.实体bean:ProductType2.字段id,nameProductType.xml中定义一个查询,如下:<parameterMaptype="map"id="p... 1.实体bean:ProductType
2.字段id,name

ProductType.xml 中定义一个查询,如下:

<parameterMap type="map" id="paramMap">
<parameter property="productType" javaType="com.nd.orm.ProductType" jdbcType="OTHER" />
<parameter property="pageSize" javaType="int" jdbcType="NUMERIC"/>
</parameterMap>

<select id="getScrollPage" parameterMap="paramMap" resultType="com.nd.orm.ProductType">
select * from ProductType where 1=1
<if test="productType.name!=null and productType.name!=''">
and name like #{productType.name}
</if>
</select>

查询:
Map<String,Object> map=new HashMap<String, Object>();
ProductType a=new ProductType();
a.setName("XXXXX");//////////////////////////////注意这里
map.put("productType", a);
map.put("pageSize", 10);
List p= session.selectList("ProductType.getScrollPage", map);

问题:
如果a.setName赋值了,查询没问题

可是如果a没有setName,系统就报错:
Cause: org.apache.ibatis.executor.ExecutorException: There was no TypeHandler found for parameter productType of statement ProductType.getScrollPage
展开
 我来答
wwf0527
推荐于2016-08-04 · 超过13用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:39万
展开全部
mybatis 没用过,Ibatis 用过一段时间。
报的错就是你传进去的
map.put("productType", a);
productType 参数找不到 对应参数。

如果不像传参数进去可以考虑在 getScrollPage 中加入动态的Where 条件。
追问
已经做判断了

and name like #{productType.name}

而且直接用 select * from ProductType 查询,冒同样的错误
追答
 
这判断应该是有问题,我不知道Mybatis支不支持这么写,
我觉得你不加这个判断,
a.setName("");//////////////////////////////注意这里
给它set个空值试一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式