【发布时间】:2016-06-08 04:28:39
【问题描述】:
我正在尝试从数据库迭代两个集合中获取结果,如下所示
for (SomeType element1 in List1) {
for (SomeType2 element2 in List2) {
Query query = session.createQuery("from Table where column1 =: element1 and column2 =: element2");
//Operations on list of results
}
}
我怎样才能以最佳性能做这样的事情?在我的应用程序中,list1 有 200 个元素,而 list2 大约有 30 个元素,这需要太多时间。
【问题讨论】:
-
这对性能来说太可怕了。给定列表大小,您正在执行 200 * 30 个查询。请改用 HQL IN 子句。
-
我可以在一个查询中使用两个 HQL 'ins' 吗?例如:
from Table where column1 in (:list1) and column2 in (:list2)
标签: java sql performance hibernate