错误:超出堆栈深度限制 - Java hibernate postgresql

时间:2013-03-22 09:45:19

标签: java hibernate postgresql stack

我在我的jboss 5.1-java-jpa-hibernate-postgresql应用程序中运行一个select查询。此查询是arroung 10查询的UNION查询,通常现在它应该返回大约25.000个BigInteger数字(稍后会更多)。昨天这个功能运行正常。今天我收到以下错误。有人可以请教吗?我找不到这个错误。

ERROR: stack depth limit exceeded Hint: Increase the configuration parameter "max_stack_depth", after ensuring the platform's stack depth limit is adequate.

如果我一个接一个地运行10个查询然后将结果添加到一个ArrayList中会有帮助吗?


编辑:

使用的Postgresql版本:postgresql-9.0-801.jdbc4.jar

出于安全原因,我无法显示确切的查询。但它类似于:

SELECT * FROM (
    SELECT fileId FROM table1
    UNION
    SELECT fileId FROM table2
    ...
    ...
    SELECT fileId FROM table_n
);

此查询现在返回大约25.000个BigInteger条目(将来将达到120.000)。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

问题解决了。这是通过发送到postgresql的非常大的查询发生的。

代码中有一个动态创建查询的错误,而不是一个联合查询中的10个查询,它复制它们并在一个联合查询中有数百个相同的查询系列。所有这些都导致了db中的大量查询,从而导致数据库中的事务超时。

我更改了代码以通过自己执行每个查询并使用代码合并结果。当然我修复了错误,它只生成了10个正确的查询。

感谢大家的帮助。