كيف تقرر كيف فئات الكيان لوضع التعليقات التوضيحية JPA NamedQuery؟

StackOverflow https://stackoverflow.com/questions/2009779

  •  18-09-2019
  •  | 
  •  

سؤال

أقول لدي عميل - علاقات ثنائية الاتجاه المرسلة من سنة واحدة مع نظام تشغيل Customer الذي يحمل القيمة الإجمالية لكل طلب.

إذا كان لدي استعلام للعثور على القيمة الإجمالية لجميع الطلبات لعملاء معين:

select SUM(o.orderValue) from CustomerOrder o where o.customer = :customer

هل يهم في أي فئة كيكة يتم الإعلان عن هذا؟ لماذا تضعها في واحد أو آخر؟

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

المحلول

هل يهم في أي فئة كيكة يتم الإعلان عن هذا؟

من وجهة نظر فنية، لا يهم كما ستستخدم name من أ @NamedQuery للاتصال بها.

لماذا تضعها في واحد أو آخر؟

ولكن، من وجهة نظر "منطقية"، وضع @NamedQuery حيث "بطبيعة الحال" ينتمي بالتأكيد الصيانة. في مثالك، أود أن أضع الاستعلام في CustomerOrder كيان لأن الاستعلام يكون حول النتيجة CustomerOrder, هذا هو المكان الذي أتوقع فيه العثور عليه إذا اضطررت إلى البحث عنه.

نصائح أخرى

لا يهم. المبدأ العام هو وضعه حيث ينتمي منطقيا. في حالتك - سيكون من الأفضل CustomerOrder

ضعها في ملفات تعيين XML التي يجب الإعلان عنها في persistence.xml. انظر هذا الرابط العظيم: Arjan-tijms.omnifaces.org/09/where-to-put-lyties-in-jpa.

لا تنتمي الكثير من الاستعلامات "بشكل طبيعي" مع الكيان (وعلا يتعين عليك تعديل رمز الكيكة، إذا وضعتها هناك، في كل مرة تحتاج فيها إلى استعلام جديد).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top