سؤال

ما هو أفضل وسيلة لملء الجداول تخلق مع النقابة عند بدء تشغيل التطبيق / اغلاق التطبيق؟ مثل ولكن مع بيانات لغة التلاعب بدلا لغة تعريف البيانات. أنا باستخدام HibernatePersistence كمزود المثابرة.

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

المحلول 2

وحلها مع import.sql في الحزمة الافتراضي واختيار "خلق" كقيمة hibernate.hbm2ddl.auto. السبات يدعم أيضا hibernate.hbm2ddl.import_files الممتلكات.

نصائح أخرى

إذا كنت تستخدم أيضا الربيع، ثم <وأ href = "https://stackoverflow.com/questions/915974/using-table-with-schema-name-in-hibernate-3-3-1ga-and -hsqldb / 957393 # 957393 "> هذه الإجابة ستعمل.

إذا كنت لا تستخدم الربيع، ثم يجب تشغيل رمز DDL يدويا. لاحظ أن السبات لديها دعم محدود فقط لتعديل قاعدة بيانات (يمكن في الأساس فقط إنشاء الجداول). حتى إذا كنت بحاجة إلى أي شيء آخر، يجب عليك استخدام SQL مخصصة.

[تحرير] إذا كنت لا تستخدم الربيع، ثم تجد وسيلة للحصول على Session السبات. استدعاء الأسلوب doWork() الذي يسمح لتشغيل SQL التعسفي.

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

وكنت لا تريد أن تكتب الكثير من البيانات insert، ثم إدراج البيانات في DB وتصديره مع أداة SQL مثل SquirrelSQL التي يمكن أن تخلق البيانات insert بالنسبة لك. وضعها في ملف إضافي، قراءة الملف عند بدء التشغيل، تقسيمه في ; وتنفيذ كل قطعة.

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

ومنذ لديك بالفعل نموذج كائن وORM حل آخر أكثر المحمولة هو تحديد البيانات الحرف الأول مع الأشياء الخاصة بك والسماح للمزود JPA يستمر لهم. ورغم أن هذا الحل قد يبدو مرهقة، ولكن باستخدام مشاريع مثل هذا يجعلها أكثر قبولا.

لأغراض الاختبار، لقد اتخذت لاستخدام برنامج نصي رائع بسيط وgmaven البرنامج المساعد من org.codehaus.groovy.maven. وبين البرنامج المساعد gmaven تنفيذ البرنامج النصي رائع، والنصي يخلق import.sql خلال دورة حياة مخضرم توليد-الموارد الاختبار. عن طريق الحلقات والعدادات في السيناريو هو أفضل بكثير من الكتابة يدويا من ملف مليئة ادخال البيانات. وهذا بالطبع يتطلب أن يكون لديك الاشياء hbm2ddl فرزها، كما يبدو أنك بالفعل أنها قد برزت من التحديثات والأجوبة السابقة.

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