gpt4 book ai didi

java - Weblogic + JPA不刷新Oracle数据库上的数据

转载 作者:行者123 更新时间:2023-12-01 15:19:09 27 4
gpt4 key购买 nike

我有一个基于Oracle10g(数据源)+ Weblogic 10.3 + Eclipselink的系统。

如果我通过带有 DAO 的 Java 软件插入或删除数据,所有数据都会立即可用,但如果我手动插入数据(通过 SqlDeveloper 或使用 java.sql.Connection 类),则新数据不会从数据库。
为什么会发生这种情况?又该如何解决呢?

最佳答案

发生这种情况是因为 EclipseLink 无法意识到通过其他一些方法对数据库进行了更改。外部工具不会通知 EclipseLink 有关更改的信息,并且 EclipseLink 不会始终轮询数据库内容以查找可能的更改。这样的实现会降低性能。通过 JPA 批量操作(例如 JPQL 和 native SQL DELETE 和 INSERT 查询)进行的更改也会发生同样的情况。

您无法真正解决该问题,但当您关闭共享缓存时,可以更轻松地忍受它。请注意可能的性能影响。

在 JPA 1 中:

<property name="eclipselink.cache.shared.default" value="false"/>  

在 JPA 2 中:

<shared-cache-mode>NONE</shared-cache-mode>

作为共享缓存的补充,EntityManager 也维护缓存。单个实体可以通过 refresh 从数据库刷新方法。

关于java - Weblogic + JPA不刷新Oracle数据库上的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com