sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur vet Spring Data vilken butik man ska backa ett arkiv med om flera moduler används?

Beslutet om att lagra en proxy som skapats för ett Spring Data repository-gränssnitt fattas endast på grund av din konfigurationsinställning. Anta att du har följande konfiguration:

@Configuration
@EnableJpaRepositories("com.acme.foo")
@EnableMongoRepositories("com.acme.foo")
class Config { }

Detta kommer att sprängas någon gång eftersom gränssnitten i paketet com.acme.foo detekteras båda av MongoDB- och JPA-infrastrukturen. För att lösa detta låter både JavaConfig- och XML-stödet dig definiera inkluderings- och exkluderingsfilter så att du antingen kan använda namnkonventioner, ytterligare kommentarer eller liknande:

@Configuration
@EnableJpaRepositories(basePackages = "com.acme.foo", 
                       includeFilters = @Filter(JpaRepo.class))
@EnableMongoRepositories(base Packages = "com.acme.foo", 
                         includeFilters = @Filter(MongoRepo.class))
class Config { }

I det här fallet, de två anteckningarna @JpaRepo och @MongoRepo (som skapas av dig) skulle användas för att selektivt utlösa upptäckten genom att annotera relevanta förvarsgränssnitt med dem.

En riktig autodetektering är typ omöjlig eftersom det är svårt att avgöra vilken butik du riktar in dig på enbart från förvarsgränssnittsdeklarationen och vid den tidpunkt då böndefinitionerna skapas vet vi inte ens om någon ytterligare infrastruktur (en EntityManager eller liknande) ännu.




  1. Scala - Skapa IndexedDatasetSpark-objekt

  2. Sortera en array och lägg till ett rangfält i MongoDB

  3. Mongoose välj subdoc-fält

  4. Så här gör du:Skanna Salted Apache HBase-tabeller med regionspecifika nyckelområden i MapReduce