当前位置: 首页 > 面试题库 >

EntityManager刷新

敖和韵
2023-03-14
问题内容

我有使用JPA的Web应用程序。这个实体经理保持一堆实体,突然间我从另一侧更新了数据库。我使用 MySQL, 并使用 PhpMyAdmin
并更改一些行。

如何告诉实体管理器重新同步,例如忘记缓存中的所有实体?

我知道有refresh(Object)方法,但是有可能怎么做refreshAll()或导致什么结果?

可以肯定,这是昂贵的操作,但必须执行。


问题答案:
entityManager.getEntityManagerFactory().getCache().evictAll()

Refresh有所不同,因为它 修改了您的对象 。该行将是empty the cache,因此,如果您在实体管理器外部获取更改的对象,它将执行实际的数据库查询,而不是使用过时的cached值。



 类似资料:
  • 我将Seam与JPA一起使用(实现为SEAM管理的持久上下文),在我的后台bean中,我将一个实体集合(ArrayList)加载到后台bean中。 如果不同的用户在不同的会话中修改实体之一,我希望这些更改传播到我的会话中的集合,我有一个方法< code>refreshList()并尝试了以下方法... 使用以下查询 重新执行查询,只返回我已经拥有的相同数据(我假设它使用的是一级缓存,而不是数据库)

  • Hibernate EntityManager实现了EJB3.0 JPA规范。Hibernate Java Persistence provider通过了Sun TCK测试和完全认证,你可以在Java SE 5.0,或Java EE 5.0以上的任何环境里使用Hibernate Java Persistence provider。 Hibernate是一个非常优秀的持久层ORM(Object/Re

  • 我有两个具有不同PlatformTransactionManager、LocalContainerEntityManagerFactoryBean的数据源 我已经用org.springframework.transaction.annotation.transactional将manager方法注释为@transactional(value=“ReportingDataSource”) 我的存储库

  • 问题内容: 我们将Spring + JPA用于Web应用程序。我的团队在讨论如何在注入的(基于泛型的东西对AppFuse中提供的线DAO,我们不使用过的注射某种原因)r。我们正在使用“应用程序管理的持久性”。 反对注入a的论点是它太重了,因此不是必需的,这就是我们需要的。而且,由于Spring将为每个Web请求创建一个DAO的新实例(我对此表示怀疑),因此不会有任何并发​​问题,因为在同一实例中,

  • 问题内容: 如果将新文档索引到Elasticsearch索引,则可在索引操作后1秒钟左右搜索新文档。但是,可以通过调用或对索引进行操作来强制使该文档可立即搜索。这两个操作之间有什么区别- 结果似乎对他们来说是相同的,可以立即搜索文档。 这些操作中的每一项到底是什么? ES文档似乎并未深入解决此问题。 问题答案: 您得到的答案是正确的,但我认为值得详细说明。 刷新有效地调用了Lucene索引读取器上

  • 问题内容: 我的战争包含以下内容: persistence.xml: web.xml: 我的TestServlet类如下: package com.test.service; 调用get()方法时,我得到一个NullPointerException; 尚未注入EntityManager。关于我可能缺少的或如何诊断的任何建议?服务器日志中几乎没有。 我确定我在没有jboss-web.xml或web.