我要写这样一个sql select * from tableA where id in (1234, 342, 54245)
xml文件部分如下
select ah.*
FROM
tableA ah
WHERE
user_id > 0 and is_done = 'Y' and
announced_time >= #{startTime} and
announced_time <= #{endTime} and
ah.active_id in
<foreach collection="activeIds" item="activeId" index="index" open="(" close=")" separator=",">
#{activeId}
</foreach>
order by id desc
这是方法:
public List<A> find(@Param("activeIds")List<String> activeIds, @Param("startTime")Date startTime, @Param("endTime")Date endTime);
我传入的List<String> 是这样的{123-1, 234-2,444-5}
这样sql就变成了 ....where active_id in (123, 234, 444) 也就是说自动把"-"符号后面的去掉了。
其实这个是因为我写代码的时候本来就是要取"-"前面的数的,失误写错了。。直接传进去了。但也恰好实现了这个功能。。
我的问题是。mybatis什么时候做的这个截取。。我看了一下源码,找不到。。希望可以得到帮助。。谢谢。
慕标5832272
相关分类