我有一个存储过程,它返回多个结果集。对于存储过程的不同输入,输出是不同的。
当我用不同的输入分别调用存储过程(2次运行)时,它会按预期返回。
当我在同一个方法中调用它们两次时,它返回相同的值。
@NamedNativeQuery(
name = "getFees",
query = "call SCHEMA1.RES_FEES(:id,:type,:orig,:dest)",
resultClass = Fees.class)
例如:id=1, type="R",origin ="Vegas",dest="London",返回的费用为100美元如果id=2, type="V", origin ="London", dest="Vegas",则返回费用为$90
当我与ip1分别执行SP时,它返回$100当我与ip2分别执行SP时,它返回$90
但是当我在JAVA中使用不同的输入集在同一个方法中执行SP两次时,它两次返回$100。
有什么问题吗?
奇怪的问题。这里有一些建议和测试,可以用来调试这个问题。
- 打开休眠查询日志,查看是否有异常。
- 检查是否在应用程序中使用二级缓存。如果是,请禁用它并再次运行测试,看看是否存在缓存问题。