3

我目前正在使用 Hibernate 的 JPA 实现成功地将对象持久保存到数据源。现在,我想重写hibernate 的EntityManager 实现,特别是createQuery 函数。因此,在构建持久性上下文时,将使用我自定义的 EntityManager。

这可能吗?如果是这样,我将如何进行?

非常感谢。

编辑:

我想实现我自己的缓存。(注意:我已经查看了 Hibernate 的二级缓存,主要缺点是“缓存永远不会知道另一个应用程序对持久存储所做的更改”,所以我反对它)。

我的缓存将包含数据源中最近使用的数据。由于客户端通过 EntityManager 请求数据,我将覆盖/扩展它,以便首先检查缓存。如果未命中,那么 EntityManager 将照常进行。

编辑2:

或者,我可以从 org.hibernate.ejb 扩展 QueryImpl。这将允许我将 getResultList() 和 getSingleResult() 的功能更改为以下内容:

  1. 检查外部缓存中的数据
  2. 如果找到,返回结果
  3. 否则,调用基类 QueryImpl.getResultList(或 QueryImpl.getSingleResult())
4

0 回答 0