sql >> Database >  >> NoSQL >> MongoDB

Hoe weet Spring Data met welke winkel een repository moet worden geback-upt als er meerdere modules worden gebruikt?

De beslissing die een proxy opslaat die is gemaakt voor een Spring Data-repository-interface, wordt alleen gemaakt vanwege uw configuratie-instellingen. Stel dat u de volgende configuratie heeft:

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

Dit gaat op een gegeven moment exploderen als de interfaces in pakket com.acme.foo worden beide gedetecteerd door de MongoDB- en JPA-infrastructuur. Om dit op te lossen, kunt u met zowel de JavaConfig- als de XML-ondersteuning filters voor opnemen en uitsluiten definiëren, zodat u naamconventies, aanvullende annotaties en dergelijke kunt gebruiken:

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

In dit geval zijn de twee annotaties @JpaRepo en @MongoRepo (door u te maken) zou worden gebruikt om selectief de detectie te activeren door de relevante repository-interfaces ermee te annoteren.

Een echte automatische detectie is een beetje onmogelijk, omdat het moeilijk te zeggen is op welke winkel u zich richt, uitsluitend uit de repository-interfacedeclaratie en op het moment dat de bean-definities worden gemaakt, weten we niet eens van enige verdere infrastructuur (een EntityManager of iets dergelijks) nog niet.




  1. Moeten twee modules dezelfde redis-verbinding gebruiken? (Ik werk met Flask)

  2. Hoe string naar array in MongoDB te converteren?

  3. MongoDB - mongobestanden

  4. MongoDB:vind waarde in array met meerdere criteria