2016-06-02 14 views
9

एक स्प्रिंग बूट आवेदन परियोजना में के बीच संबंधों, मैं 2 डेटा स्रोत हो:स्प्रिंग डाटा: 2 विभिन्न डेटा स्रोतों

  • एक MySQL डेटाबेस (उर्फ "DB1")
  • एक MongoDB डेटाबेस (उर्फ "डीबी 2 ")

मैं स्प्रिंग डाटा जेपीए और स्प्रिंग डाटा MongoDB उपयोग कर रहा हूँ, और यह बहुत अच्छा काम कर रहा है ... एक समय में एक।

डीबी 1 हैंडल "खिलाड़ियों", और डीबी 2 हैंडल "टीम" (खिलाड़ियों की आईडी की एक सूची के साथ) कहता है। क्या उन दो विषम संस्थाओं के बीच संबंध बनाना संभव है?

List<Player> fooPlayers = teamDao.findOneById(foo).getPlayers(); 

संपादित: यदि संभव हो तो, मैं प्राप्त करना चाहते हैं (यानी @ManyToOne, @Transactional, Lazy/उत्सुक, आदि)

उदाहरण के लिए, मैं लिखने में सक्षम होना चाहता हूँ किसी भी वसंत डेटा प्रोजेक्ट के साथ काम करने वाला समाधान

+3

कि कैसे करना है बस [संदर्भ गाइड] से समझाया गया है (http://docs.spring.io में आप कहते हैं आशा /spring-data/data-mongo/docs/1.9.2.RELEASE/reference/html/#mongo.cross.store) –

+0

@RelatedDocument एनोटेशन अच्छा है, लेकिन यह केवल एक तरफ काम करता है। इसके अलावा, यह केवल मोंगोडीबी के साथ काम करता है (मैं अपने प्रश्न को संपादित करने जा रहा हूं कि मैं एक समाधान चाहता हूं जो किसी वसंत-डेटा प्रोजेक्ट के साथ काम करता है) – Nicolas

+0

कोई समाधान नहीं है जो तकनीक के बावजूद काम करता है। आपका प्रश्न स्प्रिंग डेटा जेपीए और स्प्रिंग डेटा मोंगोडीबी के बारे में था। वह समाधान स्पष्ट रूप से दस्तावेज है। क्रॉस-स्टोर समर्थन मूल रूप से सामान्य है और इसे किसी भी चीज़ तक बढ़ाया जा सकता है लेकिन इसके लिए आपके हिस्से पर काम की आवश्यकता होती है। –

उत्तर

2

दुर्भाग्यवश आपके कंडुंड्रम का वसंत डेटा में कोई समाधान नहीं है।

संभावना क्या हो सकती है कि आप स्वयं का इंटरफ़ेस (डीएओ) कक्षा बनाते हैं। उस डीएओ कक्षा में आपके दोनों डीबी पूछने के लिए कार्यान्वयन होंगे। एक बहुत ही कच्चे तेल और कम उदाहरण होगा

your DAO 
{ 
    yourFind (id) 
    { 
     this would find in db2 and return a relevant list of objects 
     findOneByID(id) 
     get the player from the above retrieved list and query db1 
     getPlayer(player) 
    } 
} 

मैं इस सही दिशा

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