java - 休眠命名查询(选择)
问题描述
我们在项目中使用休眠作为 ORM 以及 Spring 框架。今天,我遇到了一个问题,即一个命名查询(基本上是一个选择查询)在被多次调用时给出了不一致的结果。命中此选择查询不在循环中,而来自前端。因此,当我从前端多次执行相同的操作时,有时查询会从数据库中获取正确的数据,但有时不会。
示例:(示例代码)
Query query = session.getNamedQuery("select debitid from ABCMstrEntity where entitynum=: entitynum and isopen=:Y");
query.set(........);
..
List<Object[]> list = (List<Object[]>)query.list;
在前 4 次尝试中,我在列表对象中得到了正确的数据。在我的第 5 次尝试中,我得到了空列表对象,尽管 db 中存在所提供输入的数据。当我在 DB 端使用 db 查询日志检查它时,我发现我的第 5 次尝试在 DB 端没有命中。看来,这里出了点问题。
我还在我的项目中检查了 hibernate 中的缓存相关设置,但我们没有在任何缓存区域中缓存查询结果。此外,应用程序日志中也没有异常。
请有人帮助我分析和修复这个问题。
解决方案
推荐阅读
- azure-devops - 修改后管道中的任务组未更新
- c++ - 中止 SFTP 上传会在部分上传的文件末尾留下损坏的数据,从而无法继续上传
- python-3.x - 提交表单时出现以下错误:RelatedObjectDoesNotExist at /agents/create/ User has no userprofile
- django - 为什么我看不到 /Users/Evalyn/folder13/trydjango/src
- css - 标有 gfm: true 不使用适当的 css 呈现表格
- php - 无法从 GitHub 将 php 库安装到我的服务器:“未捕获的错误:找不到类”
- google-cloud-platform - Google Cloud 上的 Jupyter Notebook:大约 20 小时后出现服务器连接错误
- javascript - Ionic/Angular HTTP post请求在android上不起作用
- java - 我想将字体添加到我的 JPanel 及其所有组件中。(如标签和文本字段和密码字段)
- asp.net - 检查会话并重定向(如果在 aspx 文件中不存在)