سؤال

أنا استخدم JPQL لاسترداد البيانات. يمكنني الحصول على البيانات باستخدام البيان

List persons = null;
persons = em.createQuery("select p.albumName from PhotoAlbum p , Roleuser r 
where r = p.userId and r.userID = 1");

الآن يمكنني الحصول على أسماء الألبوم باستخدام هذا:

int i=0;
for (i=0;i<persons.size(); i++)
{   
     System.out.println("Testing n "+ i +" " +  persons.get(0));
}

الآن أريد أن أحصل على اسم الألبوم ومسملة صف الدور firstname

أنا أستخدم الاستعلام

persons = em.createQuery("select r.firstName , p.albumName from PhotoAlbum p ,   
Roleuser r where r = p.userId and r.userID = 1").getResultList();

الآن كيف يمكنني الحصول على اسم الصفوف الأولى واسم الألبوم كأشخاص. get (0) يعيد كائن

عن طريق تشغيل الكود:

 for (i=0;i<persons.size(); i++)
    {
        //r = (Roleuser) persons.get(i);
        System.out.println("Testing n "+ i +" " + persons.get(i));
    }

أنا أحصل على هذا:

Testing n 0 [Ljava.lang.Object;@4edb4077
INFO: Testing n 1 [Ljava.lang.Object;@1c656d13
INFO: Testing n 2 [Ljava.lang.Object;@46dc08f5
INFO: Testing n 3 [Ljava.lang.Object;@654c0a43

كيف يمكنني تعيين persons.get(0) والحصول على firstname و albumname?

هل كانت مفيدة؟

المحلول

الآن كيف تحصل على صفوف FirstName و Albumname كأشخاص. get (0) يعيد كائن

استفسارات مع متعددة select_expressions في جملة SELECT إرجاع A Object[] (أو أ List من Object[]). من مواصفات JPA:

4.8.1 نوع النتيجة من جملة SELECT

نوع نتيجة الاستعلام المحددة بواسطة جملة SELECT من الاستعلام هو نوع مخطط مجردة الكيان ، أو نوع حقل الحالة ، أو نتيجة وظيفة إجمالية ، أو نتيجة عملية البناء ، أو بعض تسلسلها.

يتم تعريف نوع النتيجة للفقرة المحددة بواسطة أنواع النتائج من select_expressions الواردة في ذلك. عندما تكون متعددة select_expressions يتم استخدامها في جملة SELECT ، نتيجة الاستعلام من النوع Object[], والعناصر في هذه النتيجة تتوافق من أجل ترتيب مواصفاتها في جملة SELEC select_expressions.

لذلك في حالتك ، ربما تريد شيئًا كهذا:

for (i=0;i<persons.size(); i++) {
    //r = (Roleuser) persons.get(i);
    System.out.println("Testing n " + i + " " + persons.get(i)[0] + ", " + 
        persons.get(i)[1]);
}

لاحظ أن تحديد انضمام داخلي عن طريق استخدام منتج ديكارت في البند من الفقرة وشرط انضمام في الفقرة حيث يكون أقل نموذجية من تحديد صلة صريحة عبر علاقات الكيان (باستخدام [LEFT [OUTER] | INNER ] JOIN بناء الجملة). انظر القسم بأكمله 4.4.5 ينضم في المواصفات.

مراجع

  • مواصفات JPA 1.0
    • القسم 4.8.1 "نوع نتيجة شرط تحديد"
    • القسم 4.8.2 "تعبيرات مُنشأة في جملة SELECT"
    • القسم 4.4.5 "ينضم"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top