如何使用 JPA/EJB3 和 WildFly 读取未提交的数据?

How to read uncomitted data using JPA/EJB3 and WildFly?

我已将遗留企业应用程序从 EJB2.1 迁移到 JPA/EJB3 并将 JBoss 4.x 迁移到 WildFly 17。

在整个应用程序中,遵循下面提到的模式,由于时间限制,我不打算修改错误的模式。在数据库中设置的默认隔离级别是读提交。

模式: 开始交易
保存数据
通过 finder 方法读取数据 - 这需要未提交读取
更新一些东西
提交交易

通过查找器方法读取数据 - 这需要未提交读取才能读取脏数据。
在 EJB2.1 中,这是通过只读 beans 处理的,我在将应用程序迁移到 JPA 时删除了它们。

这是否可以在不修改此处使用的代码模式的情况下实现?

感谢帮助!

我会在数据源级别设置隔离级别

因为我使用的是 JBoss,它使用休眠作为实体管理器,所以我将 bean 从 JPA 解包到休眠会话,然后将实体从休眠中分离出来,使其成为只读的。

这完全没有解决问题,我在应用程序中缓存的对象很少,每当需要只读 bean 时,首先要查找缓存。