تحديد الأعمدة في JPQL SELECT يسبب خطأ في الصب
سؤال
عندما أحدد أعمدة في استعلام JPQL/JPA 2.0 ، أي select p.id, p.lastName, p.firstName from Profile p where p.group = :group
أحصل على الخطأ التالية: [Ljava.lang.Object; cannot be cast to com.profs.ws.Profile...
أي شخص يعرف كيف يحل قضية الصب هذه؟
ال Profile
يحتوي فئة الكيان نفسها على خصائص الأنواع التالية: String, int, and Collection
. الخصائص التي أختارها في الاستعلام هي إما من النوع String
أو int
.
المحلول
عندما تحدد خصائص كائن ما ، تقوم JPA بإرجاع قائمة من Object[]
. يمكنك إلقاء قيمة الإرجاع إلى List<Object[]
بدلاً من List<Profile>
لتجنب ClassCastException
. إذا كنت تستخدم Hibernate كمزود JPA ، فيمكنك تعيين جملة SELECT إلى كائن جديد. يرى حدد جملة الوثائق للحصول على التفاصيل.
لا تنتمي إلى StackOverflow