我们正在从休眠中调用一个存储过程(它在其中调用另一个)。
Query query = session.getNamedQuery("query_name");
query.setParameter('param', 'value');
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List returnList = query.list();
当我们在 SQL developer 中运行时,存储过程独立运行良好。但是我们通过应用程序运行它,它给出了以下错误。
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
我们尝试过的事情:
- 从休眠中调用一个简单的存储过程-运行良好。
- 创建测试用例以测试调用存储过程(引发错误)的方法 - 运行良好。
我们的问题是,为什么相同的查询在测试用例中运行良好,而不是在运行整个应用程序时?
有任何想法吗?
更新 这是我的错,我正确地传递了参数。刚刚交换了第一个两个参数。对于面临此问题的任何人,请检查您在命名查询中的参数顺序。
谢谢。