|
|
1
4
此数据库限制在Hibernate中仍然存在。如果您的in子句中确实需要1000个以上的项,那么您必须自己在代码中拆分列表,并为每个1000个键的块运行查询,然后将结果集附加在一起。
注意,如果您的查询需要对查询结果进行排序或以其他方式聚合,则此黑客程序会崩溃,因为完整的结果集只在代码中知道。在这种情况下,您最好找到另一种方法来编写不需要
|
|
|
2
3
我们有同样的问题,并通过将它分成100个第条中的包来解决它。
评论:
你为什么要以上几点?这样查询优化器就可以重用查询计划。 其他优化:
示例:in(1,2,3,4,4,…,4) 注:我们在条款中用各种固定数量的元素进行了测试,观察到超过100种元素的性能下降。 |
|
|
3
2
是的,因为Hibernate会在某个阶段调用Oracle,所以该限制是Hibernate和Oracle中的最低限制 Hibernate对in的数据没有什么特别的作用-只是将其传递到数据库 |
|
|
4
1
|
|
|
koryakinp · Where子句和Join的LINQ顺序 8 年前 |
|
|
lost9123193 · 使用。Where子句和筛选数组的条件 8 年前 |
|
|
user9639519 · 如何基于索引外的行向新列返回值 8 年前 |
|
|
PWT · 如何在何处设置SQL条件 8 年前 |
|
|
user8420047 · Where子句的SQL问题 8 年前 |
|
|
Rebel · 如何隔离具有受约束高度的三维曲面的区域? 8 年前 |
|
|
Mark · SQL;按合并列搜索 8 年前 |
|
|
Saef Myth · Mysql比较两个数字列表 8 年前 |
|
|
SAT · 为什么在if中使用LINQ会更改属性 8 年前 |