首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weblogic + JPA不刷新Oracle数据库上的数据

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

Stack Overflow用户
提问于 2012-06-26 22:17:41
回答 1查看 631关注 0票数 0

我有一个基于Oracle10g (数据源)+WebLogic10.3+ Eclipselink的系统。

如果我使用DAOs通过Java软件插入或删除数据,则所有数据都立即可用,但如果我手动插入数据(通过SqlDeveloper或使用java.sql.Connection类),则不会从数据库中获取新数据。

为什么会发生这种情况?以及如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2012-06-27 01:43:24

发生这种情况是因为EclipseLink无法意识到通过其他方法对数据库进行了更改。外部工具不会将更改通知给EclipseLink,而且EclipseLink也不会一直轮询数据库内容以查看可能的更改。这样的实现会降低性能。通过JPA批量操作所做的更改也是如此,比如JPQL和原生SQL DELETE和INSERT查询。

你不能真正解决这个问题,但当你打开共享缓存时,你会更容易接受它。注意可能对性能造成的影响。

在JPA 1中:

代码语言:javascript
复制
<property name="eclipselink.cache.shared.default" value="false"/>  

在JPA 2中:

代码语言:javascript
复制
<shared-cache-mode>NONE</shared-cache-mode>

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11209375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档