मैं एक जावा ऐप लिख रहा हूं जो डेटा प्राप्त करने के लिए हाइबरनेट का उपयोग करता है, मेरे ऐप में मेरे पास एक इनपुट टेक्स्ट एरिया है जो उपयोगकर्ता टाइप-इन एसक्यूएल कमांड स्ट्रिंग लेता है और उपयोगकर्ता द्वारा पूछे जाने वाले डेटा को प्राप्त करने के लिए हाइबरनेट के माध्यम से चलाता है, इसलिए मैं पहले से नहीं पता कि परिणाम तालिका कैसी दिख सकती है और इसलिए कॉलम नामों को नहीं पता है, लेकिन मुझे डेटा फ़ील्ड से संबंधित कॉलम नामों के साथ तालिका में उपयोगकर्ता क्वेरी परिणाम प्रदर्शित करने की आवश्यकता है, हाइबरनेट में इसे कैसे प्राप्त किया जाए? मैं निम्नलिखित कोड की कोशिश की है:जावा में हाइबरनेट क्वेरी परिणाम से कॉलम नाम कैसे प्राप्त करें?
Session session=HibernateUtil.getSession();
session.beginTransaction();
Query q=session.createQuery(hql);
AliasToEntityMapResultTransformer INSTANCE=new AliasToEntityMapResultTransformer();
q.setResultTransformer(INSTANCE);
List<Map<String,Object>> aliasToValueMapList=q.list();
for (Map<String,Object> map : aliasToValueMapList)
for (Map.Entry<String,Object> entry : map.entrySet()) System.out.println(entry.getKey()+" - "+entry.getValue());
यह मुझे निम्न त्रुटि संदेश दिया: सूत्र "AWT-EventQueue-0" java.lang.ClassCastException में अपवाद: sakila.entity.Actor जावा में ढाला नहीं जा सकता है। use.Map
यह पहली लूप के लिए इंगित कर रहा है, क्योंकि मैं हाइबरनेट के लिए नया हूं, यह नहीं पता कि इसमें क्या करने योग्य है, उपरोक्त कोड को कैसे ठीक किया जाए? क्या कोई मुझे कुछ नमूना कोड दिखा सकता है जो मेरे मामले में काम करता है?
संपादित करें: जैसा कि मार्सेल स्टोर ने नीचे बताया है, मुझे दोनों स्थितियों को होने की अनुमति देने में सक्षम होना चाहिए और किसी भी डेटा से पूछने के लिए उपयोगकर्ताओं की क्षमता को सीमित नहीं करना चाहिए, इसे करने का सबसे अच्छा तरीका क्या है?