春のデータmongodbでMULTI-TENANTプロジェクトを開始しています。この投稿を読んだ後、テナントごとのコレクションは、mongodb ではかなりまともなアプローチです。
では、Spring Data Mongo でこれを達成するにはどうすればよいでしょうか? どうやら、すぐに使用できるソリューションは提供されていませんが、determinCollectionName メソッドをオーバーライドすることで MongoTemplate を微調整できると思いましたが、目的のためにパブリックでも保護されたメソッドでもないと想定しています。
ただし、SimpleMongoDbFactory を拡張し、ここで提供されているヒントに従って LocalThread 変数を使用することで、テナントごとのアプローチを非常に簡単にセットアップできます。
したがって、質問は次のとおりです。
- コレクションとドメイン クラス名のマッピングをオーバーライドできる安全な方法はありますか? ps: これは実行時に発生するはずなので、@collection アノテーションはまったく役に立たないと思います。
- テナントごとの収集が不可能な場合、マルチ DB アプローチを採用すると、パフォーマンスとリソースにどの程度のペナルティが発生しますか?