Я пишу специальную реализацию для репозитория данных JPA Spring. Поэтому у меня есть:
-
MyEntityRepositoryCustom
= > интерфейс с настраиваемыми методами -
MyEntityRepositoryUmpl
= > реализация указанного интерфейса -
MyEntityRepository
= > стандартный интерфейс, который расширяетJpaRepository
иMyEntityRepositoryCustom
Моя проблема заключается в следующем: в реализации MyEntityRepositoryUmpl
мне нужно получить доступ к диспетчеру сущности, который был введен в Spring Data. Как его получить?
Я могу использовать @PersistenceContext
, чтобы получить его автоматически, но проблема заключается в том, что этот репозиторий должен работать в приложении, которое устанавливает несколько единиц устойчивости. Итак, чтобы сообщить Spring, какой мне нужен, мне пришлось бы использовать @PersistenceContext(unitName="myUnit")
. Тем не менее, поскольку мои репозитории определены в многоразовом слое службы, я не могу знать, в какой точке будет имя единицы сохранения, которое будет настраиваться уровнем приложения более высокого уровня для ввода в мои репозитории.
Другими словами, мне нужно будет обратиться к диспетчеру сущности, который использует Spring Data, но после (не так быстро) взглянуть на документацию Spring Data JPA, я ничего не смог найти для этого.
Честно говоря, тот факт, что классы Impl
полностью не знают о Spring Data, хотя описывается как сила в руководстве по Spring Data, на самом деле является сложностью, когда вам нужно получить доступ к тому, что обычно предоставляется Spring Данные сами в вашей пользовательской реализации (почти всегда, я бы сказал...).