最近由于内存不足,我们在生产中发生了崩溃。我们获得了堆转储,这为我的团队提供了问题的答案,但我们仍然经历了 OQL 查询执行中的一些不确定行为。
在带有 OQL 的 VisualVM 中,我尝试获取具有相同 id 的所有对象(恰好是 Long),结果我也得到了具有其他 id 的对象。
select m from com.someapp.service.model.SomeModel m where m.id.value = 1;
此查询总是返回超过 100 个具有看似随机 id 值的结果。
这是为什么呢?如何编写一个查询来返回我正在查找的实例?
OQL 存在错误。问题是字段名称“id”。其他字段名称也可以正常工作。
请参阅通过 VisualVM OQL 查询检索“id”字段值了解解决方法。