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
|
AntonBoarf · 休眠/春天:悲观主义者vs乐观主义者锁定? 6 年前 |
Sinan Samet · Hibernate给出无法确定类型错误 6 年前 |
Carlos Chávez · Tomcat/Hibernate配置 6 年前 |
Seric · 更改Naturald参数名称后出错 6 年前 |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 6 年前 |
Jovan0042 · 在H2中持久化多个实体引发异常 6 年前 |