Poster hendaklah menulis pernyataan hql hibernate:
SELECT r.Id FROM A r WHERE r.Status = :edcbatchStatus
Selepas hql ini dilaksanakan, ia sepatutnya jenis koleksi id dikeluarkan. Mengikut mesej ralat, jenis hasil ialah List<String> Di sini, jika jenis penukaran paksa ialah List<A>, pengecualian akan dilemparkan. Terdapat penyelesaian berikut:
Jika anda hanya ingin mendapatkan koleksi id, ubah suai jenis penukaran paksa
Boleh jadi getResultList() sendiri memperoleh List<String>. Dari perspektif SQL, select r.Id, maka tekaan ini adalah munasabah.
Jadi sama ada tukar nilai pulangan kepada List<String>, atau dapatkan keseluruhan objek dalam SQL (ada juga beberapa pemetaan, dll., saya hanya boleh menganggap bahawa anda telah mengkonfigurasinya), seperti select r.* from ....
Poster hendaklah menulis pernyataan hql
hibernate
:Selepas hql ini dilaksanakan, ia sepatutnya jenis koleksi
id
dikeluarkan. Mengikut mesej ralat, jenis hasil ialahList<String>
Di sini, jika jenis penukaran paksa ialahList<A>
, pengecualian akan dilemparkan. Terdapat penyelesaian berikut:Jika anda hanya ingin mendapatkan koleksi id, ubah suai jenis penukaran paksa
Jika anda ingin mendapatkan keseluruhan objek, anda perlu mengubah suai pernyataan hql
Walaupun saya tidak biasa dengan Spring dan sudah lama tidak menulis Java, saya dapat melihat beberapa masalah daripada kod ini
Daripada mesej ralat, terdapat masalah semasa menukar String kepada jenis A. Terdapat hanya satu ayat dalam kod untuk penukaran:
Boleh jadi
getResultList()
sendiri memperolehList<String>
. Dari perspektif SQL,select r.Id
, maka tekaan ini adalah munasabah.Jadi sama ada tukar nilai pulangan kepada
List<String>
, atau dapatkan keseluruhan objek dalam SQL (ada juga beberapa pemetaan, dll., saya hanya boleh menganggap bahawa anda telah mengkonfigurasinya), sepertiselect r.* from ...
.