2010-03-25 11 views
5

मैं अन्य संस्थाओं के आधार पर एक इकाई लोड करने के लिए एक <loader> तत्व में एक HQL क्वेरी का उपयोग करने का प्रयास कर रहा हूँ।का उपयोग nhibernate <loader> HQL साथ तत्व प्रश्नों

मेरे वर्ग के रूप में

public class ParentOnly 
{ 
    public ParentOnly(){} 
    public virtual int Id { get; set; } 
    public virtual string ParentObjectName { get; set; } 
} 

अनुसरण करता है और मानचित्रण इस

<class name="ParentOnly"> 
    <id name="Id"> 
    <generator class="identity" /> 
    </id> 
    <property name="ParentObjectName" /> 
    <loader query-ref="parentonly"/> 
</class> 

<query name="parentonly" > 
    select new ParentOnly() 
    from SimpleParentObject as spo 
    where spo.Id = :id 
</query> 

वर्ग है कि मैं शीर्ष पर मैप करने के लिए SimpleParentObject, जो अपनी ही मानचित्रण है और कर सकते हैं है का प्रयास कर रहा हूँ की तरह लग रहा है बिना किसी समस्या के लोड और बचाया जा सकता है।

जब मैं session.Get <ParentOnly> (आईडी) एसक्यूएल सही ढंग से SimpleParentObject टेबल के खिलाफ चलाता है, और एक ParentOnly वस्तु instantiated है (जैसा कि मैंने constructer के माध्यम से कदम कर सकते हैं) कहते हैं, लेकिन केवल एक अशक्त बल्कि instantiated से, वापस आता है अभिभावक केवल वस्तु।

मैं एचक्यूएल के बजाय इसका सफलतापूर्वक उपयोग कर सकता हूं, लेकिन इसे डेटाबेस स्वतंत्र फैशन में बनाने की कोशिश कर रहा हूं।

कैसे एक आबादी वाले ParentOnly वस्तु लौटने के लिए <loader> और <query> तत्वों प्राप्त करने पर कोई विचार ...?

धन्यवाद

मैट

+0

HQL क्वेरी किसी को भी सोच क्यों एक में उपयोग करना चाहते हैं के लिए है, btw एक उपकरण के द्वारा उत्पन्न होता है। –

उत्तर

0

nHibernate प्रलेखन की मेरी समझ का चयन करें बयान इस समस्या को दूर करना चाहिए परिवर्तित करने से।

<query name="parentonly" > 
    select ParentObjectNameAS {spo.Name}, Id AS {spo.Id} 
    from SimpleParentObject as spo 
    where spo.Id = :id 
</query> 

स्रोत: http://www.nhforge.org/doc/nh/en/

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