我需要为 JPA EntityManager 添加一点智能,自定义 createNamedQuery
。
我在一个包含许多模块的项目构建中工作,其中每个模块都使用 @PersistenceContext(unitName = "emModuleName")
注释其 EntityManager 实例。
看来我不能简单地扩展接口(interface)EntityManager,但我没有在网上找到任何关于这件事的文档。
有人知道什么是满足我需求的最佳解决方案吗?
我无法扩展一个特定的实现,因为应用程序必须独立于 JPA 实现。 谢谢
最佳答案
一种方法是创建自己的 EntityManager
实现,作为真正的 EnityManager
的包装器。拦截所需的方法(在您的情况下为 createNamedQuery
),并将所有其他调用委托(delegate)给 underyling 对象。
或
创建您自己的代理来拦截方法调用。
然而,这两种方式都不是您可能希望的那样简单易用。
关于java - 自定义一个 EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509957/