Rupanya, metode Query.list () dalam Hibernate API bukan tipe aman "menurut desain", dan tidak ada rencana untuk mengubahnya .
Saya yakin solusi paling sederhana untuk menghindari peringatan compiler adalah dengan menambahkan @SuppressWarnings ("unchecked"). Anotasi ini dapat ditempatkan di tingkat metode atau, jika di dalam metode, tepat sebelum deklarasi variabel.
Jika Anda memiliki metode yang merangkum Query.list () dan mengembalikan List (atau Collection), Anda juga mendapatkan peringatan. Tapi yang ini ditekan menggunakan @SuppressWarnings ("rawtypes").
Metode listAndCast (Query) yang diusulkan oleh Matt Quail kurang fleksibel dibandingkan Query.list (). Sementara saya bisa melakukan:
Query q = sess.createQuery("from Cat cat");
ArrayList cats = q.list();
Jika saya coba kode di bawah ini:
Query q = sess.createQuery("from Cat cat");
ArrayList<Cat> cats = MyHibernateUtils.listAndCast(q);
Saya akan mendapatkan kesalahan kompilasi: Type mismatch: can't convert from List to ArrayList