Ternyata pengecualian ini disebabkan oleh bug di Hibernate. Salah satu rekan tim saya menemukan laporan bug terkait, Merakit ulang entitas dari cluster JBoss Cache mungkin gagal dengan "ketidakcocokan tipe argumen" , yang terjadi saat menggunakan Hibernate dan JBoss Cache.
Menurut laporan tersebut, menyetel properti Hibernate hibernate.cache.use_structured_entries
untuk benar menghindari pengecualian. Menurut dokumentasi Hibernate, properti ini "memaksa Hibernate untuk menyimpan data di cache tingkat kedua dalam format yang lebih ramah manusia". Tampaknya, entri cache terstruktur juga memastikan bahwa Hibernate memetakan properti objek dengan benar di cache tingkat kedua ke properti yang sesuai dalam suatu entitas.
Javalobby memiliki artikel menarik yang menjelaskan cara Hibernate menggunakan cache tingkat kedua.
Apakah versi Hibernate setelah 3.3.2GA juga menunjukkan perilaku ini?