जाहिर है, हाइबरनेट एपीआई में Query.list () विधि "डिजाइन द्वारा" सुरक्षित नहीं है, और इसे बदलने की कोई योजना नहीं है ।
मेरा मानना है कि कंपाइलर चेतावनियों से बचने का सबसे सरल उपाय वास्तव में @SuppressWarnings ("अनियंत्रित") जोड़ना है। इस एनोटेशन को विधि स्तर पर रखा जा सकता है या, यदि किसी विधि के अंदर, चर घोषणा से ठीक पहले।
यदि आपके पास एक विधि है जो Query.list () को वापस लाती है और सूची (या संग्रह) लौटाती है, तो आपको एक चेतावनी भी मिलती है। लेकिन यह @SuppressWarnings ("rawtypes") का उपयोग करके दबा दिया गया है।
मैट क्वाइल द्वारा प्रस्तावित लिस्टएंडकैस्ट (क्वेरी) विधि Query.list () से कम लचीली है। जबकि मैं कर सकता हूँ:
Query q = sess.createQuery("from Cat cat");
ArrayList cats = q.list();
अगर मैं नीचे दिए गए कोड को आज़माऊं:
Query q = sess.createQuery("from Cat cat");
ArrayList<Cat> cats = MyHibernateUtils.listAndCast(q);
मुझे एक संकलित त्रुटि मिलेगी: प्रकार बेमेल: सूची से ArrayList में परिवर्तित नहीं कर सकता