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

use*_*403 5 java oracle hibernate ora-01795

我正在使用java/hibernate/Oracle.我有一个包含超过3000个条目的列表.如果我通过整个列表我得到以下异常.

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

解决问题我将列表拆分为子列表,每个子列表将有1000个条目.对于每千个条目我正在触发查询.它工作正常.

请澄清一下,有什么更好的解决方案吗?

谢谢!

Jon*_*eet 8

这是Oracle的一个限制,这就是为什么它有一个Oracle错误代码......虽然你可以说它是Hibernate的一个限制,它不透明地解决它:)

您可能应该将列表放入临时表并加入其中,假设Oracle没有SQL Server的表值参数.(或者你可以将你的查询分解为多个查询,potentailly - 这取决于你正在做什么.)