一尘不染

引起原因:java.sql.SQLException:ORA-01795:列表中的最大表达式数为1000?

hibernate

我正在使用java / hibernate / Oracle。我有一个超过3000个条目的列表。如果我通过整个列表,我将获得以下例外。

引起原因:java.sql.SQLException:ORA-01795:列表中的最大表达式数为1000

为了解决此问题,我将列表分为多个子列表,每个子列表将有1000个条目。对于每千个条目,我都会触发一个查询。它工作正常。

请澄清一下,有没有更好的解决方案?

谢谢!


阅读 641

收藏
2020-06-20

共1个答案

一尘不染

这是一个Oracle的限制,这就是为什么它有一个Oracle错误代码的原因……尽管您可能会说它不能透明地解决它是Hibernate的一个限制:)

假设Oracle没有像SQL Server的表值参数那样的东西,您可能应该将列表放入临时表并加入该。(或者您可以将查询分解为多个查询,potentailly –这取决于您在做什么。)

2020-06-20