sql >> Databáze >  >> NoSQL >> MongoDB

Spring-data-mongodb se připojuje k více databázím v jedné instanci Mongo

Zde je odkaz na článek, o kterém si myslím, že je to, co hledáte http://michaelbarnesjr.wordpress.com/2012/01/19/spring-data-mongo/

Klíčem je poskytnout více šablon

nakonfigurujte šablonu pro každou databázi.

<bean id="vehicleTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoConnection"/>
    <constructor-arg name="databaseName" value="vehicledatabase"/>
</bean>

nakonfigurujte šablonu pro každou databázi.

<bean id="imageTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongoConnection"/>
        <constructor-arg name="databaseName" value="imagedatabase"/>
</bean>

<bean id="vehicleTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoConnection"/>
    <constructor-arg name="databaseName" value="vehicledatabase"/>
</bean>

Nyní musíte Springovi sdělit, kde jsou vaše úložiště, aby je mohl vložit. Všechny musí být ve stejném adresáři. Zkoušel jsem je mít v různých podadresářích a nefungovalo to správně. Všechny jsou tedy v adresáři úložiště.

<mongo:repositories base-package="my.package.repository">
    <mongo:repository id="imageRepository" mongo-template-ref="imageTemplate"/>
    <mongo:repository id="carRepository" mongo-template-ref="vehicleTemplate"/>
    <mongo:repository id="truckRepository" mongo-template-ref="vehicleTemplate"/>
</mongo:repositories>

Každé úložiště je rozhraní a je zapsáno následovně (ano, můžete je nechat prázdné):

@Repository
public interface ImageRepository extends MongoRepository<Image, String> {

}

@Repository
public interface TruckRepository extends MongoRepository<Truck, String> {

}

Název soukromé proměnné imageRepository je sbírka! Image.java budou uloženy do kolekce obrázků v databázi imagedb.

Zde je návod, jak můžete najít , vložit a smazat záznamy:

@Service
public class ImageService {

    @Autowired
    private ImageRepository imageRepository;
}

Pomocí Autowiring přiřadíte název proměnné k názvu (id) ve vaší konfiguraci.



  1. MongoDB :Jak znásobit pole, které se objevuje pouze v $project?

  2. JavaScript nepřiřazuje prvek k objektu

  3. MongoDB:aktualizace pole v poli

  4. Závažná chyba PHP:Třída 'MongoDate' nebyla nalezena