我想知道在弹簧集成中使用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框架的细微差别,服务层做了一些抵消它的工作似乎不正确。
欢迎提出建议,并提前致谢!