【发布时间】:2014-12-22 16:48:58
【问题描述】:
我正在为 Spring Data JPA 存储库编写自定义实现。所以我有:
-
MyEntityRepositoryCustom=> 与自定义方法的接口 -
MyEntityRepositoryUmpl=> 上述接口的实现 -
MyEntityRepository=> 扩展JpaRepository和MyEntityRepositoryCustom的标准接口
我的问题是:在MyEntityRepositoryUmpl 的实现中,我需要访问注入到 Spring Data 中的实体管理器。如何得到它?
我可以使用@PersistenceContext 让它自动装配,但问题是这个存储库必须在设置多个持久性单元的应用程序中工作。所以,要告诉 Spring 我需要哪一个,我必须使用@PersistenceContext(unitName="myUnit")。但是,由于我的存储库是在可重用的服务层中定义的,所以我当时不知道更高级别的应用程序层将配置注入到我的存储库中的持久性单元的名称是什么。
换句话说,我需要做的是访问 Spring Data 本身正在使用的实体管理器,但是在(不是那么快)查看 Spring Data JPA 文档之后,我找不到任何东西。
老实说,Impl 类完全不知道 Spring Data 的事实,尽管在 Spring Data 手册中被描述为一个优势,但当您需要访问通常由 Spring Data 本身在您的自定义实现(几乎总是,我会说...)。
【问题讨论】:
标签: spring-data spring-data-jpa