Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

NHibernate QueryOver - बहुत अधिक परिणामों के साथ संग्रह

मुझे डर है कि वह काम नहीं करेगा। <join> . की डिज़ाइन और प्रकृति के अनुसार . जैसा कि दस्तावेज़ीकरण में बताया गया है:

जिस तरह से (मैं करता हूं) इस मुद्दे को हल करना थोड़ा अलग है। मेरे पास एक वस्तु है Language , विकल्प में भाषाओं का संग्रह है

public virtual IList<Language> Languages {get; set;}

मैपिंग उदाहरण के लिए है <bag>

<bag name="Languages"  batch-size="25"
  cascade="all-delete-orphan" inverse="true" >
  <key column="option_id" />
  <one-to-many class="Language" />

  <filter name="LanguagFilter" condition=":languageId = LanguageId" />
</bag>

ट्रिक फ़िल्टर . में है . यह कहां . का एक गतिशील संस्करण है मानचित्रण-विशेषता (18.1. NHibernate फ़िल्टर)

<filter-def name="LanguageFilter" >
  <filter-param name="languageId" type="Int32" />
</filter-def>

फिर, हम वर्तमान सत्र के सभी कार्यों के लिए फ़िल्टर को चालू कर सकते हैं। प्रति अनुरोध केवल एक बार (यदि वेब ऐप), कुछ एओपी के अंदर, जहां हम भाषा आईडी जानते हैं:

var filter = session.EnableFilter("LanguageFilter");
filter.SetParameter("languageId", theCurrentLanguageIdFromUser);

और अंत में, हम जानते हैं, कि संग्रह भाषाओं में केवल एक रिकॉर्ड होता है और हम हमेशा .First() तक पहुंच सकते हैं। . अधिक भाषाओं के साथ और अधिक परिणाम नहीं

यह भी देखें:https://stackoverflow.com/a/16625867/1679310 , https://stackoverflow.com/a/18479266/1679310




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाग्रिड व्यू में हेरफेर करें

  2. mysqldump केवल एक टेबल निर्यात करता है

  3. अलग-अलग पैरामीटर के साथ एक ही चुनिंदा क्वेरी को कई बार चलाना

  4. टेक्स्ट डेटाटाइप को जारी रखते हुए हाइबरनेट त्रुटि

  5. नोड MySQL के साथ सर्वर रहित फ्रेमवर्क