问题描述
||
在我们的应用程序中,我们使用hibernate + postgres进行持久化。最近,执行一个查询似乎将Postgres设置为狂热模式...该查询是一个简单的2表联接,其中为某些属性添加了额外的条件子句。
通过休眠会话执行它们时,postgres失败,但出现异常“函数0的高速缓存查找失败” –仍然无济于事!
因此,我打开了postgres日志,发现无论何时执行\“ select \”查询,我都会在postgres日志中看到以下内容:
\"UTC ERROR: XX000: cache lookup failed 0\"
\"UTC Location: get_func_retset,lsyscache.c:1368\"
有趣的是,通过命令行执行相同的查询不会导致此问题。有人遇到过这种情况吗?如果是这样,您如何解决?
任何意见/建议高度赞赏!
谢谢
解决方法
找到了解决方案。我们在postgres中创建了自定义函数/运算符,碰巧表列之一是char而不是varchar。将这些列更改为varchar可解决问题