15
有一個在我的MyBatis包含IN子句這基本上是一個集ID的(整數)的如何整數數組傳遞給IN子句中的MyBatis
現在我堅持我如何能整數關口查詢數組添加到此IN子句中,以便它可以提取正確的記錄。通過將包含ID的字符串傳遞給IN子句來實現,但這不能按預期工作。下面
MyBatis的方法使用註釋
@Select(SEL_QUERY)
@Results(value = {@Result(property="id",column="ID")})
List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
查詢
代碼示例
select distinct ID from table a where a.id in (#{usrIds})
方法調用
Integer[] arr = new Integer[2];
arr[0] = 1;
arr[1] = 2;
mapper.getIds(arr)
這不是工作,MyBatis的拋出一個錯誤WH恩我調用映射器方法
任何建議請
感謝您的提示,我會檢查出來並更新這裏的空間 – Vivek 2012-01-06 13:12:47
實際上,只要您的查詢字符串以'
是的,你可以使用註釋來做到這一點。
如果您使用的是postgresql,您可以像in this post這樣做。
如果你使用MySQL的嘗試這改變你的代碼示例:
MyBatis的方法使用註釋
查詢(使用MySQL)
方法調用
來源
2012-02-09 04:40:00
正是我所需要的 – deeshank 2016-08-09 15:59:31
這裏有一個值得注意的是FIND_IN_SET不會使用索引,所以這個版本可能比IN語句執行的更差 – Zack 2017-04-25 22:44:41