Так что, если у вас есть строка типа "category1, category2" от потребителя activemq, вам нужно собрать из нее для обработки mybatis foreach.Я делаю пример, используя Java DSL, потому что это будет быстрее.
from("activemq:queue:someQueue")
.process(exchange -> {
String jmsString = exchange.getIn().getBody(String.class);
List<String> strings = Arrays.asList(jmsString.split(","));
exchange.getIn().setBody(strings);
})
.to("mybatis:select-items?statementType=SelectOne");
И изменить сопоставление, как:
<select id="select-authors" parameterType="java.util.List" resultMap="authors-result">
SELECT
name, age, category
FROM author
WHERE category IN
<foreach item="item" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
Это должно работать.Больше полезных примеров вы можете найти здесь