MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

वसंत डेटा मोंगो में संग्रह आधारित बहु किरायेदारी

आप GetCollectionName() को ओवरराइड करने के लिए MappingMongoEntityInformation का विस्तार कर सकते हैं। रिपोजिटरी ऑपरेशंस प्रत्येक ऑपरेशन पर getCollectionName() को कॉल करते हैं। मुझे लगता है कि किरायेदार आईडी एक थ्रेडलोकल होगा

public class TenantThreadLocal extends ThreadLocal<String> {
    private final static TenantThreadLocal instance = new TenantThreadLocal();

    public static TenantThreadLocal instance() {
        return instance;
    }
}

और ओवरराइड किए गए वर्ग को कंस्ट्रक्टर के साथ छोड़ दिया गया।

public class TenantMappingMongoEntityInformation<T, ID extends java.io.Serializable>  extends MappingMongoEntityInformation<T, ID> {

    @Override
    public String getCollectionName() {
        return TenantThreadLocal.instance().get() + super.getCollectionName();
    }
}

फिर अपना भंडार बनाएं:

MongoPersistentEntity<YourObject> persistentEntity = 
    (MongoPersistentEntity<YourObject>) 
    mongoOperations.getConverter()
    .getMappingContext()
    .getPersistentEntity(YourObject.class);

MongoEntityInformation<YourObject, ObjectId> mongoEntityInformation =
    new MappingMongoEntityInformation<YourObject, ObjectId>(persistentEntity);

CrudRepository<YourObject, ObjectId> repository =
    new SimpleMongoRepository<YourObject, ObjectId>(mongoEntityInformation, mongoOperations);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी में इवेंट शेड्यूलर (क्रोनजॉब)?

  2. Mongoose.js instance.save () कॉलबैक फायरिंग नहीं

  3. इलेक्ट्रॉन का उचित उपयोग

  4. मोंगोडब (पाइमोंगो) में डालने पर दक्षता

  5. जब मैं एक्सप्रेस पैराम मार्गों के लिए findOne विधि का उपयोग कर रहा हूं तो मुझे favicon.ico क्यों मिल रहा है?