我想知道在彈簧集成中使用mybatis時,變換方法參數的最佳方法是什麼。轉換的原因可能是由於各種原因 - 例如, mybatis無法處理java.util.Set作爲參數輸入。Mybatis彈簧變換參數
具體,說我有一個DAO接口方法爲:
List<Foo> getFooForUniqueIds(Set<Long> ids);
和相應的XML爲:
<select id="getFooForUniqueIds" parameterType="java.util.Set" resultMap="foo">
SELECT f.*
FROM foo f
WHERE f.id IN <foreach collection="list" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</select>
我需要一種方法來Set<Long> ids
轉變成List<Long> ids
的MyBatis的XML片段可以解釋。我明白我們可以給出一個直接處理SqlSessionFactory的具體類,但我喜歡Spring集成提供的抽象,我不擔心獲取會話和關閉它們等非有趣的東西。
有人可能會認爲DAO應該是愚蠢的,可能應該在服務層進行轉換。然而,這種情況下的轉換是因爲mapper框架的細微差別,服務層做了一些抵消它的工作似乎不正確。
歡迎提出建議,並提前致謝!