سؤال

أنا أبحث عن طريقة سريعة (سريعة حقًا) لاختبار التغييرات على استعلامات السبات.لدي تطبيق ضخم يحتوي على الآلاف من استعلامات HQL المختلفة (في ملفات XML) وأكثر من 100 فئة معينة ولا أرغب في إعادة نشر التطبيق بالكامل لاختبار تغيير صغير واحد فقط في الاستعلام.

كيف سيبدو الإعداد الجيد لتحريري من إعادة النشر وتمكين التحقق السريع من الاستعلام؟

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

المحلول

مع Intellij IDEA 8.1.3، تسمى آلية الاختيار "Facet".لاختبار استعلامات HQL على الفور:

  1. إنشاء مصدر بيانات الأدوات -> مصدر البيانات، إضافة مصدر بيانات، تحديد برنامج التشغيل واسم المستخدم وكلمة المرور لقاعدة بيانات التطوير الخاصة بك
  2. في حالة عدم وجود ملف hibernate.cfg لديك بالفعل أو قيامك بتكوين مصنع الجلسة الخاص بك بطريقة مختلفة عن طريق ملف xml:إنشاء ملف hibernate.cfg يشير إلى كافة تعيينات XML (حدد اسمًا لمصنع الجلسة، فقط لتسهيل التعامل معه)
  3. في "بنية المشروع" أضف الواجهة إلى الوحدة النمطية التي تختارها وقم بتعيين مصدر البيانات المحدد مؤخرًا إلى الواجهة الجديدة
  4. قم بالتبديل إلى عرض Java EE
  5. فتح جوانب السبات - العقدة
  6. انقر بزر الماوس الأيمن فوق مصنع الجلسة واختر "فتح وحدة تحكم HQL"
  7. أدخل استعلام HQL في وحدة التحكم ... وفعلت ذلك.

آسف على هذا السؤال RTFM.

نصائح أخرى

ويمكنك استخدام السبات أدوات في كسوف لتشغيل الاستعلامات. وهذا سوف يسمح لك لتشغيل HQL كلما كنت تريد أن تجرب شيئا.

<الإضراب> إذا كنت تستخدم IntelliJ لل، هناك Hibero .

وهناك محرر مستقل من الشمس، ولكن لم أحاول ذلك.

وكتبت أداة بسيطة لاختبار والمعاينة HQL، وهذا هو فقط الطبقة جافا واحدة مع الأسلوب الرئيسي.

ويمكنك العثور على رمز هنا: https://github.com/maheskrishnan/HQLRunner

وهنا لقطة الشاشة ...

وأنا اختبار الاستفسارات HQL بلدي في وحدة الاختبارات مع قاعدة بيانات HSQLDB. مجرد تهيئة مدير كيان، يطرح للجلسة السبات والاستعلام بعيدا.

    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

وأفضل أندرس

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

والطريقة لقد فعلت هذا كان قبل لتنفيذ بعض التجارب التكامل بسيط مع أداة JUnit و <ل أ href = "http://www.dbunit.org/" يختلط = "نوفولو noreferrer"> DBUnit .

في جوهرها، وسوف تستخدم DBUnit لانشاء قاعدة بيانات الاختبار الخاصة بك مع مجموعة معروفة وتمثيلا من البيانات، ومن ثم أداة JUnit عادي لممارسة الأساليب التي تحتوي على الاستفسارات HQL الخاص بك، والتحقق من النتائج.

وعلى سبيل المثال،

وإعداد قاعدة البيانات الخاصة بك أولا أن تحتوي فقط على مجموعة ثابتة من البيانات منها مثلا.

Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500

وهذا شيء كنت تفعل في الإعداد أداة JUnit حالة الاختبار () طريقة.

والآن دعونا نفترض لديك DAO لهذا الكيان، وهناك "findProductWithPriceGreaterThan (دولي)" الأسلوب. في الاختبار، وكنت تفعل شيئا مثل:

public void testFindProductWithPriceGreaterThanInt() {
    ProductDAO dao = new HibernateProductDAO();
    //... initialize Hibernate, or perhaps do this in setup()

    List products = dao.findProductWithPriceGreaterThan(110);
    assertEquals(2, products.size());
    //... additional assertions to verify the content of the list.
}

في سوق الكسوف، يمكنك البحث عن أدوات جبوس واختيار السبات أدوات فقط من قائمة معينة.

في الكسوف

  1. تثبيت أدوات السبات (Jboss)
  2. قم بالتبديل إلى وضع السبات
  3. افتح/انقر فوق نافذة تكوين السبات
  4. انقر فوق النافذة وأضف التكوين
  5. Rt انقر على النافذة، انقر/افتح محرر HQL
  6. اكتب استعلامات HQL الخاصة بك وقم بتنفيذها واحصل على النتيجة في نافذة نتائج Hibernate Query

اتبع هذا الرابط لمزيد من المعلومات http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

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