أين تضع hibernate.cfg.xml؟




(6)

CMD + N / CTR + N أثناء وجودك على Eclips ، فإنه سيتم فتح مربع حوار هناك لديك إلى dubbel انقر فوق مجلد Hibernate. سيتم فتح قائمة بالملفات مع XML التضمين. حدد cfg.xml وانقر على متابعة ومتى انتهيت! انقر على الانتهاء. سيقوم Eclips الآن بإضافة اسم الفئة مع ملف cfg.xml وإظهاره ضمن مجلد SRC. GB

مشروعي هو كالتالي:

/src/main/java
     -thegamers
         -app.java
         -hibernateutil.java

يمكن أن يقول لي أحد أين يضع hibernate.cfg.xml؟

لأنني أتلقى هذا الخطأ:

Initial SessionFactory creation failed.org.hibernate.HibernateException: hibernate.cfg.xml not found
Exception in thread "main" java.lang.ExceptionInInitializerError
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)
    at thegamers.HibernateUtil.<clinit>(HibernateUtil.java:8)
    at thegamers.App.main(App.java:15)
Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2149)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2130)
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
    ... 2 more

أنا باستخدام مخضرم ، وأنها لا تعمل بالنسبة لي حتى أضع hibernate.cfg.xml في src/main/resources .


إذا لم يكن مشروع ويب ثم فعل ذلك صراحة

new Configuration().configure( "pth/to/hibernate.cfg.xml").buildsessionfactory()

آمل أن هذا قد يساعد

SiB أشار إلى وجود رابط (موقع mkyong على الويب). هو موضح جيدا هناك.


إنه نفس الشيء بالنسبة لأي وقت آخر تحتاج فيه إلى ملف مرئي على مسار الصنف. يجب أن يكون ملف التهيئة hibernate.cfg.xml في مسار الفئة.

يمكن تحقيق ذلك بطرق مختلفة ، اعتمادًا على مشروعك.

  • لمشروع WAR على الويب (تقوم بتشغيل البرنامج في حاوية Servlet): سيعمل وضعه في WEB-INF/classes كملفات في WEB-INF/classes مرئية على classpath عند تشغيل التطبيق في الحاوية.

  • لمشروع Maven -style (لا يقوم بتشغيل البرنامج في حاوية Servlet): وضعه في /src/main/resources/ سيعمل

  • على خلاف ذلك ، حاول في src/ directory.


ضع hibernate.cfg.xml ضمن src/ folder أو اذكر المسار بوضوح في الكود كما يلي:

new Configuration.configure("path of hibernate.cfg.xml").buildsessionfactory()

في جذر المشروع الخاص بك: /src (في leat كافتراضي)

كيف تعرف ما إذا كان /src هو المصدر dir؟
عندما تقوم بإنشاء فئة Java جديدة ، فإنها تكون مضمنة في حزمة (تسمى عادةً بنفس اسم dir حيث يتم إنشائها). لذلك ، في تصريح صفك ، يمكنك رؤية شيء مثل هذا:

package foo;

class MyClass{

في إعدادات IDE الافتراضية ، يجب أن تجد الفئة تحت /src/foo/MyClass.java . كما ترون ، في هذا السيناريو /src يعمل كمصدر جذر dir.