OneSmileyou 2019-12-03 09:53 采纳率: 33.3%
浏览 226

hibernate查询 导致cpu占用升高,一直下不去

项目跑半天左右,cpu会上升到200%一直往上走,jstack打印出堆栈日志发现报错一直在hibernate的查询上,但是只是单表查询,数据也少。日志如下:
图片说明

请问是什么原因引起的问题

  • 写回答

1条回答 默认 最新

  • 明初啥都能学会 2024-04-08 13:46
    关注

    根据提供的堆栈跟踪信息,问题似乎出现在 Hibernate 查询中的实体对象比较过程中。具体地说,异常发生在 org.hibernate.type.AbstractStandardBasicType.isEqual 方法中,该方法用于比较两个对象是否相等。

    可能的原因和解决方法如下:

    1. 数据一致性问题: 可能存在数据一致性问题,导致实体对象的比较出现异常。您可以检查数据库中的数据是否正确,并确保实体对象的属性正确映射到数据库中的列。

    2. Hibernate 类型配置错误: 可能存在 Hibernate 类型配置错误,导致比较过程出现异常。您可以检查 Hibernate 映射文件或注解中的属性配置,确保与数据库类型匹配。

    3. Hibernate 版本兼容性问题: 如果您的项目升级了 Hibernate 版本,可能存在 Hibernate 版本兼容性问题。您可以尝试降低 Hibernate 版本或者升级项目中其他相关依赖项,以解决版本兼容性问题。

    4. 实体对象重写 equalshashCode 方法: 如果您的实体对象没有重写 equalshashCode 方法,可能会导致比较过程出现异常。确保实体对象重写了这两个方法,并且正确地实现了比较逻辑。

    5. Hibernate 缓存问题: 可能存在 Hibernate 缓存问题,导致比较过程中出现缓存不一致的情况。您可以尝试清理 Hibernate 缓存或者禁用缓存,以解决缓存问题。

    综上所述,您可以根据以上可能的原因逐一排查,并根据具体情况采取相应的解决方法来解决问题。如果问题仍然存在,请提供更多的上下文信息,以便更准确地诊断问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题