簡體   English   中英

mybatis使用動態SQL foreach

[英]mybatis using dynamic sql foreach

如何在Mybatis Mapper中使用foreach 我的意思是我應該在那里發送什么參數?

例如,我有此選擇語句

<select id="findObjectsWithIds" resultMap="SimpleObjectResult">
    SELECT * FROM testschema."XSimpleTable"
    WHERE ID in
    <foreach item="item" index="index" collection="list" 
        open="(" separator="," close=")">
            #{item}
    </foreach>
</select>

我有方法的接口

List<SimpleObject> findObjectsWithIds(List<String> ids);

我已經實現了該接口

@Override
public List<SimpleObject> findObjectsWithIds(List<String> ids) {
    SqlSession sqlSession = MyBatisSqlSessionFactory.openSession();
    try {
        SimpleMapper simpleMapper = sqlSession.getMapper(SimpleMapper.class);
        return simpleMapper.findObjectsWithIds(ids);
    } finally {
        sqlSession.close();
    }
}

當我嘗試運行時-我遇到了這個錯誤

在此處輸入圖片說明

如何正確使用foreach

問題已經解決了。

我添加了注釋param

List<SimpleObject> findObjectsWithIds(@Param("list") List<Integer> ids);

我還發送了索引的String表示形式,而不是Integer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM