2013-05-29 115 views
0

我有一個DAO方法,它接受一個HashMap作爲參數。基於字符串數組長度的IBatis動態查詢

HashMap中的鍵是要搜索的列的名稱。

String []包含要搜索的潛在值。

如果字符串數組長度爲1,則where子句匹配字符串數組中的確切值。 如果String數組的長度爲2,那麼where子句將查找字符串數組中兩個值之間的所有值。

Ibatis似乎沒有確定sqlMap xml文件中數組長度的機制(因爲數組長度沒有JavaBean getter/setter)。

是否有可能在ibatis中有條件地檢測字符串數組的長度並將查詢調整爲完全匹配或BETWEEN語句?

例如,如果密鑰是年齡並且值是18,則返回所有18歲的用戶。但是,如果密鑰爲年齡並且值爲18和23,則返回18和23之間的所有用戶。

isEqual標籤最初看起來很有前途,但它不適用於array.length,因爲它沒有getter/setter。 ibatis能確定sqlMap中數組的長度嗎?

謝謝。

回答

0

我寫了一些java代碼來將我的HashMap轉換爲List而不是String [],而ibatis使用List.size方法的效果更好。