निबर्ननेट एचक्यूएल में 'इन' क्लॉज के लिए आप चीजों की एक सूची कैसे पास करते हैं?HqlBasedQuery का उपयोग कर खंड में एक एचक्यूएल को पैरामीटरेट करना?
उदा
// data input from the user interface, not known at compile time
object[] productIds = {1, 17, 36, ... };
string hqlQuery = @"
from Product as prod
where prod.Id in (?)";
HqlBasedQuery query = new HqlBasedQuery(typeof(Product), hqlQuery, productIds)
ActiveRecordMediator.ExecuteQuery(query);
अब, यह काम करने वाला नहीं है, जितना मैं चाहता हूं! मैं वास्तव में कुछ इस तरह कर रही अटक कर रहा हूँ:
// data input from the user interface, not known at compile time
object[] productIds = {1, 17, 36, ... };
string hqlQuery = @"
from Product as prod
where prod.Id in ({0})";
// build string array of the right number of '?' characters
string[] paramStringArray = new String('?', productIds.Length).ToCharArray().Select(item => item.ToString()).ToArray();
// join to make '?, ?, ?, ?, ?'
string parameterString = string.Join(", ", paramStringArray);
hqlQuery = string.Format(hqlQuery , parameterString);
HqlBasedQuery query = new HqlBasedQuery(typeof(Product), hqlQuery, productIds)
ActiveRecordMediator.ExecuteQuery(query);
कि सिर्फ बदसूरत है और मैं यह बदसूरत और कम नहीं के रूप में के रूप में मैं कर सकते हैं बनाने के लिए कोशिश की है। अगर किसी को इसे पूरा करने का अच्छा तरीका है तो कृपया मुझे बताएं।
इसके अलावा मैं देख रहा हूँ जेफ कैसे एसक्यूएल पर यह करने के लिए के बारे में इसी तरह के सवाल पूछा: Parameterize an SQL IN clause यह मूलतः एक ही सवाल मैं सिर्फ जानना चाहता है कि यह कैसे HQL से क्या करना चाहते है। यही कारण है कि मैं खिताब इतना समान बना रहा हूं।
ICriteria अच्छी तरह से इस के लिए अनुकूल है। प्रतिबंध देखें।() – dotjoe