【发布时间】:2018-11-20 22:00:37
【问题描述】:
我使用 Oracle 数据库和 myBatis 作为 ORM 框架,所有查询都在 XML 映射器文件中。我需要在IN caluse 中放置几千个参数,并且我知道有一个限制,即只能放置 1000 个参数。我已经决定解决方案:
WHERE something IN (a1, a2, ..., a1000)
OR something IN (a1001, a1002, ..., a2000)
OR ...
我怎样才能在 XML 映射器文件中做到这一点?
有<foreach>、<if>等标签,但我没有找到任何合适的可以从上面插入SQL代码到模板中。
如果这样的东西可以使它工作,那就太好了:
<some_tag collection="huge_collection" item="huge_collection[1:1000]>
</some_tag>
【问题讨论】:
-
已经存在了。
-
Oracle/Java 问题 stackoverflow.com/q/34699223/1509264 或 stackoverflow.com/q/37160300/1509264 的重复,但添加了 MyBatis 标记。只需传入一个包含所有值的集合。
标签: java oracle orm ibatis spring-mybatis