Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JPA/EJB3和WildFly读取未写入的数据?_Jpa_Jboss_Wildfly_Ejb 3.0_Transaction Isolation - Fatal编程技术网

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

如何使用JPA/EJB3和WildFly读取未写入的数据?,jpa,jboss,wildfly,ejb-3.0,transaction-isolation,Jpa,Jboss,Wildfly,Ejb 3.0,Transaction Isolation,我已经将传统的enterprize应用程序从EJB2.1迁移到JPA/EJB3,并将JBoss 4.x迁移到WildFly 17 在整个应用程序中,遵循下面提到的模式,由于时间限制,我不打算修改坏模式。在数据库中设置的默认隔离级别为read committed 模式: 启动事务 保存数据 通过finder方法读取数据-这要求未提交读取 更新某些内容 提交事务 通过finder方法读取数据-这需要读取未提交的数据才能读取脏数据 在EJB2.1中,这是通过只读bean处理的,我在将应用程序迁移到JP

我已经将传统的enterprize应用程序从EJB2.1迁移到JPA/EJB3,并将JBoss 4.x迁移到WildFly 17

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

模式: 启动事务
保存数据
通过finder方法读取数据-这要求未提交读取
更新某些内容
提交事务

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

在不修改此处使用的代码模式的情况下可以实现这一点吗


谢谢你的帮助

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

因为我使用JBoss,它使用hibernate作为实体管理器,我将bean从JPA解包到hibernate会话,然后将实体从hibernate分离,使其成为只读的

这并没有完全解决问题,我确实在应用程序中缓存了一些对象,每当需要只读bean时,缓存就是第一个要查找的地方