|
|
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
|
|
|
Gero Mendy · 如何为一个类分配兵变的结果。查询 1 年前 |
|
Hamvy B · 替换不推荐的hibernate方法 1 年前 |
|
Martin Pfeffer · Spring Boot JPA 1 年前 |
|
|
denstran · 休眠未生成正确的id 2 年前 |
|
|
Frank · 忽略/跳过Hibernate架构验证中的特定字段 2 年前 |