iBATIS 2.3.x 支持 foreach 标签吗?
我有一个使用 iBATIS 2.3.x 的个人网站。最近我正在向网站添加一个复杂的搜索功能,需要通过对象列表查询数据,例如:
public Class PromotionAttribute {
String attributeName;
String attributeValue;
}
查询看起来像:
select p.* from promotions p
join promotion_attributes pa on p.id=pa.id
where
<foreach item="PromotionAttribute" index="index" collection="list" open="(" separator=" or " close=")">
pa.attribute_name=#{attributeName} and pa.attribute_value=#{attributeValue}#
</foreach>
对于上面的查询,它只是一个伪代码,因为我没有使用更高版本的iBATIS,它的意思是我要生成一个动态的查询条件。
我的问题是: 我不确定iBATIS 2.3.x是否支持“foreach”标签,如果不支持,如何实现这种查询?
谢谢, 水清
I have a personal website which uses iBATIS 2.3.x. Recently I'm adding a complex searching feature to the site, need to query the data by a list of object, likes:
public Class PromotionAttribute {
String attributeName;
String attributeValue;
}
The query looks like:
select p.* from promotions p
join promotion_attributes pa on p.id=pa.id
where
<foreach item="PromotionAttribute" index="index" collection="list" open="(" separator=" or " close=")">
pa.attribute_name=#{attributeName} and pa.attribute_value=#{attributeValue}#
</foreach>
For the above query, it's only a pseudocode since I didn't use the higher version of iBATIS, its meaning is I want to generate a dynamic query condition.
My question is:
I'm not sure whether iBATIS 2.3.x supports "foreach" tag, if not, how to implement this kind of query?
Thanks,
Shuiqing
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在 2.3.* 中使用 "iterate" 代替 foreach,如下所示。只有 iBATIS 3/ MyBATIS 使用基于 OGNL 的表达式,例如选择、foreach、trim...
您可以使用parameterClass 作为“java.util.Map”并通过将“productTypes”设置为键来传递列表值。
You can use "iterate" in 2.3.* in place of foreach like below. Only iBATIS 3/ MyBATIS uses OGNL based expressions like choose, foreach, trim...
You can use parameterClass as "java.util.Map" and pass list value by setting "productTypes" as key.