Java持久性API-重写/扩展Hibernate(或类似)EntityManager
我目前正在使用hibernate的JPA实现成功地将对象持久化到datasouce。现在,我想覆盖hibernate对EntityManager的实现,特别是createQuery函数。因此,在构建持久性上下文时,将使用定制的EntityManager 这可能吗?如果是,我将如何进行 非常感谢 编辑: 我想实现我自己的缓存。(注意:我已经回顾了Hibernate的二级缓存,主要缺点是“缓存永远不会知道另一个应用程序对持久性存储所做的更改”,所以我选择了反对它) 我的缓存将包含来自数据源的最近使用的数据。由于客户机通过EntityManager请求数据,因此我将覆盖/扩展该属性,以便首先检查缓存。如果未命中,则EntityManager将正常运行 编辑2: 或者,我可以从org.hibernate.ejb扩展QueryImpl。这将允许我将getResultList()和getSingleResult()的功能更改为以下内容:Java持久性API-重写/扩展Hibernate(或类似)EntityManager,hibernate,jpa,entitymanager,hibernate-entitymanager,Hibernate,Jpa,Entitymanager,Hibernate Entitymanager,我目前正在使用hibernate的JPA实现成功地将对象持久化到datasouce。现在,我想覆盖hibernate对EntityManager的实现,特别是createQuery函数。因此,在构建持久性上下文时,将使用定制的EntityManager 这可能吗?如果是,我将如何进行 非常感谢 编辑: 我想实现我自己的缓存。(注意:我已经回顾了Hibernate的二级缓存,主要缺点是“缓存永远不会知道另一个应用程序对持久性存储所做的更改”,所以我选择了反对它) 我的缓存将包含来自数据源的最近使用
你能详细说明你需要做什么吗?Hibernate提供了许多定制选项,而不必覆盖EM。原始帖子已经过编辑。您想要实现的行为是任何缓存的正常行为。只需使用任何现有的二级缓存实现,它们都将按照您所描述的方式运行。我不使用现有二级缓存的主要原因是,我可以在外部构建自己的缓存,这样就可以处理来自其他应用程序的更新,而无需定期终止数据。与Hibernate的二级缓存一样:“缓存永远不会知道另一个应用程序对持久性存储所做的更改”。