2011-02-01 12 views
11

की एक सूची के लिए परिणाम मैं अपने डीएओ में एक हाइबरनेट कॉल है कि इसकास्ट हाइबरनेट वस्तुओं

List<Associate> associate = (List<Associate>)session.createSQLQuery("SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)").setParameter("id", id).list(); 

मैं कह रहा है कि मैं मॉडल प्रकार एसोसिएट के परिणामस्वरूप सूची डाली नहीं कर सकते हैं एक त्रुटि हो रही है की तरह लग रहा है। मुझे समझ में नहीं आता कि यह क्यों हो रहा है। मैं केवल उन फ़ील्ड को लौट रहा हूं जो सहयोगी तालिका में हैं।

उत्तर

32

आप, संस्था की कक्षा परिणाम addEntity() उपयोग करने के लिए परिवर्तित किया जाना चाहिए निर्दिष्ट करने की आवश्यकता है क्योंकि आप SQL क्वेरी कि संस्थाओं के बारे में कुछ भी पता नहीं है को क्रियान्वित कर रहे हैं:

List<Associate> associate = (List<Associate>) session.createSQLQuery(
    "SELECT * FROM associates WHERE fk_id = :id AND fk_associate_id = (SELECT id FROM users WHERE fk_user_type = 2)") 
    .addEntity(Associate.class) 
    .setParameter("id", id).list(); 

भी देखें:

+0

धन्यवाद, मैं नहीं जानता कि मैं कैसे था याद किया टी। – JohnnyQuestIsASellOut

+0

यहां एंटिटी क्लास के बजाय डीटीओ क्लास का उपयोग करने का कोई तरीका है? – Moshiour

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