2015-06-11 7 views
7

में काम नहीं कर रहा है मैं स्प्रिंग डेटा मोंगोडीबी का उपयोग कर एक आवेदन पर काम कर रहा हूं। मैं अपने मॉडल में से एक पर एक कंपाउंड इंडेक्स बनाना चाहता हूं। मैं बहुत की तरह शीर्ष पर एक @CompoundIndex एनोटेशन जोड़ लिया है:@ कॉम्पाउंड इंडेक्स स्प्रिंग डेटा मोंगोडीबी

@Document 
@CompoundIndexes({ 
    @CompoundIndex(name = "name_", def = "{ 'tenantId': 1, 'name': 1 }", unique = true) 
}) 
public class MyModel { 

} 

हालांकि, सूचकांक नहीं बनाई गई है। मैंने वर्ग के ऊपर को सीधे स्थानांतरित करने का भी प्रयास किया है। संग्रह अभी भी सूचकांक खो रहा है। इसी तरह की इंडेक्स परिभाषा ठीक तरह काम कर रही है जब इस तरह बनाया गया:

mongoTemplate.indexOps(MyModel.class).ensureIndex(new Index().named("name_").on("tenantId", Direction.ASC).on("name", Direction.ASC).unique()); 

मैं इंडेक्स की एनोटेशन-आधारित परिभाषा का उपयोग करना पसंद करूंगा। कोई विचार क्यों यह काम नहीं कर रहा है?

+0

क्या आपने http://pastebin.com/PynPCgRY को आजमाया है? – chridam

+0

मैंने अभी किया और यह व्यवहार नहीं बदलता है ... – fynn

+0

हाय! क्या मैं आपको पूरा आवेदन पोस्ट करने के लिए कह सकता हूं? यदि आप कम से कम वसंत संदर्भ प्रदान करने में सक्षम हैं तो यह बहुत अच्छा होगा। – danidemi

उत्तर

0

इस मामले मैं नहीं बल्कि MongoDB createIndex विधि के साथ जाना होगा के रूप में यह अनुक्रमित नहीं बनाई गई है सुनिश्चित करता है, भले ही आप अपने अनुप्रयोग मॉडल में उन्हें बनाया (इस मामले में वसंत बूट) में यह हमेशा बेहतर है एक दोहरी जांच करने के लिए और उन्हें मैन्युअल रूप से बनाएं https://docs.mongodb.com/v3.2/reference/method/db.collection.createIndex/

संबंधित मुद्दे