怎么用一个list当参数在mapper.xml里面查

怎么用一个list当参数在mapper.xml里面查,第1张

自定义对象也用@param注解.在mapper.xml中使用的时候,#{对象别名.属性名},如#{user.id}注意,使用了@pram注解的话在mapper.xml不加parameterType。publicListselectAllUsers(@Param("user")UserExtensionuser,@Param("begin")

xx in

<foreach collection="list" item="item" open="("

separator="," close=")">

#{item}

</foreach>

1、假设一种业务场景,有一张表存储了一些受试者的信息,包括性别、年龄、职业什么的;

现在我要通过接口找到表中所有性别女年龄为49,50的受试者,以及性别男年龄55,56的受试者,但我也想通过接口只查对应的合格女受试者或者合格男受试者

总结来讲就是找 (sex=男 and age in () or sex=女 and age in(),括号中的内容还可能是空的)

mapper文件中怎么实现呢

首先我要建立一个so对象,mybatis可以根据属性名称进行区分

之前想将两个list合在一个test中进行判断,结果报错了

报错信息是com.best.oasis.crm.util.exception.QueryException: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.mapping.SqlMapperException: The expression 'maleAgeLimit' evaluated to a null value.

网上百度说可以在属性名前面加上类名,加上之后都是扯淡,还是报错

假设在dao层定义的方法中,入参加上@Param注解,指明参数名称如testSO(@Param(value="testSO") TestSO testSO,忽略这里的TestSO的T大写,跟上面的定义不一样,这个只是为了容易区分一下)

报错信息就会变成TestSO对象中testSO没有对应的get方法

没有看源码,暂时先总结到这,如果有更好的方法,希望你与我分享


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7980600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存