Mam system, w którym jest nieznana liczba najemców (różne instancje bazy danych na tym samym serwerze bazy danych). Mam działający kod, w którym użytkownik się loguje i wybrany jest właściwy najemca, i mogę odczytać tabelę konfiguracji dla tego lokatora.Tabele zapytań dla wielu najemców (ta sama nazwa tabeli)
Chcę, aby aplikacja w czasie uruchomienia przeglądała wszystkich lokatorów, odczytała konfigurację i podjęła działania. Przed przejściem do Spring Data JPA (wspieranego przez hibernację) było to łatwe, ponieważ łączyłem się osobno z każdą instancją bazy danych.
Nie sądzę, abym mógł użyć Spring @Transactional
, ponieważ konfiguruje tylko jedno połączenie.
Mam nadzieję, że użyję tego samego interfejsu repozytorium z tym samym komponentem bean, ponieważ działa on tylko wtedy, gdy muszę uderzyć tylko jednego dzierżawcę naraz.
Mam class MultiTenantConnectionProviderImpl extends AbstractDataSourceBasedMultiTenantConnectionProviderImpl
, który da mi źródło danych dla danego dzierżawcy, ale nie jestem pewien, jak go użyć w metodzie klasy @Service
?
Kiedy mówisz "czytaj konfigurację", masz na myśli tabelę w bazie danych każdego najemcy? Możesz zajrzeć do tego bloga [post] (http://anakiou.blogspot.my/2015/08/multi-tenant-application-with-spring.html), który może dać ci kilka pomysłów. Jeśli masz listę źródeł danych, myślę, że nie będzie trudno je przechwycić podczas uruchamiania aplikacji. – Mustafa
używanie "tabeli konfiguracyjnej" jako przykładu mogło być złym wyborem, ponieważ może wprowadzać w błąd rzeczy. Rzeczywiście mam kilka rzeczy, które będą musiały być przeczytane przez wszystkich najemców z różnych powodów. Podany przez Ciebie wpis na blogu sugeruje znajomość źródeł danych z góry, o czym nie wiem. –
Przez multi-najemca masz na myśli coś takiego jak posiadanie tabeli o nazwie "użytkownicy", która pojawia się w wielu bazach danych, takich jak 'dropbox_db',' google_drive_db', 'sky_drive_db' itp. Na serwerze bazy danych? – Saheed