11

昨年 8 月の投稿で、 sbzoomは spring-data-mongoDB をマルチテナントにするソリューションを提案しました。

「独自の RepositoryFactoryBean を作成する必要があります。Spring Data MongoDB Reference Docsの例を次に示します。独自の MongoTemplate を実装し、ensureIndexes() 呼び出しを遅延または削除する必要があります。ただし、いくつかのクラスを書き直して、 Spring の代わりに MongoTemplate が呼び出されていることを確認してください。」

誰かがこれまたは同等のものを実装しましたか?

4

4 に答える 4

4

私はオリバー・ギールケと同様のアプローチをとっていました。少なくともデータベースレベルでは。https://github.com/Loki-Afro/multi-tenant-spring-mongodb 次のようなことができるはずです。

        MultiTenantMongoDbFactory.setDatabaseNameForCurrentThread("test");
        this.personRepository.save(createPerson("Phillip", "Wirth", ChronoUnit.YEARS.between(
                LocalDate.of(1992, Month.FEBRUARY, 3),
                LocalDate.now())));

        System.out.println("data from test: " + this.personRepository.findAll());
//        okay? fine. - lets switch the database
        MultiTenantMongoDbFactory.setDatabaseNameForCurrentThread("test666");

//        should be empty
        System.out.println("data from test666: " + this.personRepository.findAll());
于 2014-06-13T12:42:30.223 に答える
2

スプリングブート 2.3.3 の場合

doGetMongoDatabase をオーバーライドすると、マルチテナンシーの実現に役立ちました

protected MongoDatabase doGetMongoDatabase(String dbName) {   
}

https://github.com/jose-m-thomas/mongo_multi_tenancy_spring_boot_2_3_3

于 2020-09-07T17:17:57.023 に答える