NullPointerException 与 Hibernate criteriaQuery 间歇性发生

NullPointerException happening intermittently with Hibernate criteriaQuery

我正在多线程环境中开发一个 springboot 应用程序,我使用 Hibernate 和 javax.persistence.EntityManager 来访问数据库。我有单独的 HikariPools 用于读取和写入查询。

这里,多个线程在从数据库(所有读取查询)执行读取操作时使用单个读取连接(因为我已经自动连接了 entityManager 而不是使用 PersistanceContext)。类似地,多个线程也会在 writeEntityManager 的帮助下写入 db,其中所有线程都使用单个连接。

我遇到了 AbstractLockUpgradeEventListener.upgradeLock 的问题。这是间歇性发生的,无法找到确切的根本原因。

几个假设:-

Attached the screenshot of the complete exception trace.

任何人都可以在这里提出一些建议 w.r.t 设计或实施策略或实际根本原因。

这只会偶尔发生一次

Hibernate EntityManager 不是线程安全的,您不能在多线程中使用它。

事实上,EntityManager 和加载的对象不能在多个线程中使用

https://discourse.hibernate.org/t/hibernate-and-multithreading/289