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

आईडी को ऑब्जेक्ट आईडी में बदलने के लिए मोंगो के लिए स्प्रिंग डेटा रोकें

मुझे आखिरकार इसका हल मिल गया। शायद सबसे अच्छा विकल्प नहीं है, लेकिन काम करता है।

मैंने जो किया वह कनवर्टर को String . से हटा दिया गया था करने के लिए ObjectId वह MongoTemplate QueryMapper . के माध्यम से उपयोग करता है . इस तरह, मैंने निम्नलिखित मोंगो कनवर्टर बनाया:

public class CustomMongoConverter extends MappingMongoConverter {
    public CustomMongoConverter(MongoDbFactory mongoDbFactory, MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) {
        super(mongoDbFactory, mappingContext);
        conversionService.addConverter(new Converter<String, ObjectId>() {
            @Override
            public ObjectId convert(String source) {
                throw new RuntimeException();
            }
        });
    }
}

और फिर, मैंने कनवर्टर के उस कार्यान्वयन को MongoTemplate . में पास कर दिया :

<bean id="mongoConverter" class="com.abcompany.model.repositories.utils.CustomMongoConverter">
    <constructor-arg ref="mongoDbFactory"/>
    <constructor-arg>
        <bean class="org.springframework.data.mongodb.core.mapping.MongoMappingContext"/>
    </constructor-arg>
</bean>

<bean class="org.springframework.data.mongodb.core.MongoTemplate" id="mongoTemplate">
    <constructor-arg ref="mongoDbFactory"/>
    <constructor-arg ref="mongoConverter"/>
</bean>

इस तरह, स्ट्रिंग से ऑब्जेक्ट आईडी में कनवर्ट करने का प्रयास करते समय, यह अपवाद फेंकता है और यह ऐसा नहीं करता है। कृपया ध्यान दें कि आप शायद कन्वर्टर को conversionService . से हटा सकते हैं ।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में धीमी क्वेरी अनुकरण करें?

  2. नेवला का उपयोग कैसे करें फाइंडवन

  3. मोंगोडब कुल क्वेरी, या बहुत जटिल?

  4. Node.js, MongoDB - एकाधिक दस्तावेज़ सम्मिलित/अपडेट करना और एकल प्रतिक्रिया भेजना

  5. एम्बेडेड सरणी के भीतर एम्बेडेड दस्तावेज़ में प्रोजेक्ट फ़ील्ड