طلب إعادة القطع الطفل في الاستعلام JPA
سؤال
وحتى لو كانت لغتي الاستعلام JPA هو من هذا القبيل: اختر ص متميزة من الأصل ع اليسار انضمام جلب أجل p.children التي كتبها p.someProperty
وأنا بشكل صحيح الحصول على نتيجة مرتبة إلى الوراء p.someProperty، وأنا بشكل صحيح الحصول على بلدي جمع p.children المنال بفارغ الصبر وسكانا. ولكن أود أن يكون الاستعلام بلدي أن يكون شيء من هذا القبيل "ترتيب حسب p.someProperty، p.children.someChildProperty" بحيث جمع بالسكان داخل كل كائن الأم والفرعية أمر من قبل someChildProperty.
وهذا يبدو بديهية عندما أفكر فيما يتعلق SQL التي يتم إنشاؤها في الواقع لهذه الدعوات، ولكن أعتقد أقل من ذلك عند محاولة تعيين العودة إلى كائنات الهرمية.
المحلول
لحفظ النظام، استخدم TreeSet . بقدر ما والفرز من مجموعة داخل الأم تشعر بالقلق، فقط تفعل ذلك في التعليمات البرمجية باستخدام <لأ href = "http://java.sun.com/javase/6/docs/api/java/util/Comparator.html "يختلط =" noreferrer "> المقارنة .
حسنا، وهذه محاولة على تعريف مجموعتك في والدك الطبقة الكيان. وآمل أن يتم الحصول على وجهة نظري.
ويمكنك استخدام هذا الشرح JPA،
@javax.persistence.OrderBy(value = "fieldName")
وأو هذا السبات محددة،
@org.hibernate.annotations.OrderBy(clause = "FIELD_NAME asc")
ويمكنك أيضا استخدام هذه
@org.hibernate.annotations.Sort(type = SortType.NATURAL)
أو
@org.hibernate.annotations.Sort(type = SortType.COMPARATOR)
في حالة المقارنة، يجب أن يكون للمقارنة في المكان. البعض قد تعمل فقط مع مجموعات سلسلة.
نصائح أخرى
واديل أساسا وهذا مسمر. يمكنك أيضا استخدام هذه مع قائمة التي قد تكون مهمة إذا احتوت المجموعات الخاصة بك الكيان نفسه أكثر من مرة واحدة.