sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan ved Spring Data, hvilken butik man skal sikkerhedskopiere et lager med, hvis der bruges flere moduler?

Beslutningen om, hvilken proxy der er oprettet til en Spring Data-lagergrænseflade, træffes kun på grund af din konfigurationsopsætning. Antag at du har følgende konfiguration:

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

Dette vil sprænge i luften på et tidspunkt, da grænsefladerne i pakken com.acme.foo er begge detekteret af MongoDB- og JPA-infrastrukturen. For at løse dette giver både JavaConfig- og XML-understøttelsen dig mulighed for at definere inkluderings- og ekskluderingsfiltre, så du enten kan bruge navnekonventioner, yderligere annoteringer eller lignende:

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

I dette tilfælde er de to annotationer @JpaRepo og @MongoRepo (skal oprettes af dig) vil blive brugt til selektivt at udløse detektionen ved at annotere de relevante lagergrænseflader med dem.

En rigtig autodetektering er nærmest umulig, da det er svært at sige, hvilken butik du målretter mod udelukkende ud fra deklarationen af ​​lagergrænsefladen, og på det tidspunkt, hvor bønnedefinitionerne oprettes, kender vi ikke engang til nogen yderligere infrastruktur (en EntityManager eller lignende) endnu.




  1. Installation af plugins til mongoose - får fejl

  2. Indlejret dokument vs reference i mongoose-designmodel?

  3. MongoDB Aggregation:Tæller adskilte felter

  4. MongoDB fuldtekstsøgning + løsning for delvis ordmatch