سؤال

نحن نستخدم مدير كيان السبات لتعيين كياناتنا من خلال JPA.ونحن نستخدم قاعدة بيانات الذاكرة HSQLDB لاختبار الوحدة.كان كل شيء على ما يرام حتى بدأت عملية إعادة البناء الحديثة للنموذج في حدوث الخطأ التالي:

17:55:48.516 [main] WARN  o.h.util.JDBCExceptionReporter - SQL Error: -22, SQLState: S0002
17:55:48.517 [main] ERROR o.h.util.JDBCExceptionReporter - Table not found in statement

لا يمكنني نشر SQL المعني، ولكن هل يمكن لأي شخص أن يقدم لي مؤشرات حول الأسباب المحتملة للخطأ أعلاه؟خاصة وأنني أعلم أن الكود كان يعمل من قبل.يبدو أن السبات يقوم بإنشاء SQL غير صالح بسبب إعادة البناء؟

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

المحلول

حسنا، هو الجدول فعلا هناك؟ تمكين الانتاج SQL لالسبات والتحقق من ذلك ضد مخطط قاعدة البيانات الفعلية.

قد تكون فاشلة

وإعادة الهيكلية الخاصة بك (تم إعادة تسمية كيان والجدول؛ لم يتم تحديث يدعى الاستعلام).

وأو قد يكون لديك فئة كبار السن (الخانات) في مكان ما في CLASSPATH تسبب الشروح خاطئة يمكن ان تقرأ.

نصائح أخرى

وهذا يمكن أيضا أن تشير إلى وجود عدم تطابق بين السائق JDBC ولهجة السبات.

وصلنا هذا عندما تم الاتصال سائق JDBC HSQLDB ولهجة السبات كان org.hibernate.dialect.Oracle10gDialect.

والرسالة استثناء المقابلة: [خطأ]: لا يمكن الحصول على قاعدة البيانات الوصفية java.sql.SQLException: الجدول لا توجد في بيان [اختيار sequence_name من all_sequences]

وكان لي هذه المشكلة أيضا، في حالتي كان لي شيئا من هذا القبيل في الكيان

وcolumn (اسم = "AVAIL_TARGET_PERCENT"، columnDefinition = "رقم (5،2)"، قيم الفارغة = كاذبة)

ومجرد تجنب columnDefinition (اخراجه!)، ويجب أن يكون على ما يرام. فعلت ذلك، وتم إصلاح المشكلة

لقد حصلنا أيضًا على نفس الاستثناء.اتضح الممتلكات hibernate.dialect تم تعيينه كـ org.hibernate.dialect.Oracle10gDialect مع قاعدة بيانات H2 التي تعمل كمصدر بيانات.الحل هو إزالة hibernate.dialect وعدم استخدام أي قيمة.يتمتع السبات بالقدرة على الكشف التلقائي عن البيانات التعريفية المستندة إلى اللهجة المستردة من تكوين مصدر البيانات
لمزيد من المعلومات حول كيفية اكتشاف اللهجة تلقائيًا في وضع السبات
https://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/portability.html

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