dbunit؛ الارتباك على حساسية الحالة على أسماء الطاولة / الأعمدة

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

سؤال

أحصل على هذا الخطأ عند بدء تشغيل طلبي

Caused by: org.dbunit.dataset.NoSuchColumnException: CLIENT.ID -  (Non-uppercase input column: ID) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive

لست متأكدا جدا عن السبب في أنني أحصل على هذا، نظرا لأن طاولتي / أعمدة أسماء جميع المشار إليها جميعها في الحالة العليا (على الرغم من أن الرسالة تصر على أن هذا لا ينبغي أن يكون مشكلة)

طاولتي :

mysql> describe CLIENT;
+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| ID               | int(11)      | NO   | PRI | NULL    | auto_increment |
| jdoDetachedState | tinyblob     | YES  |     | NULL    |                |
| NAME             | varchar(255) | NO   |     | NULL    |                |
| ADDRESS1         | varchar(255) | YES  |     | NULL    |                |
| ADDRESS2         | varchar(255) | YES  |     | NULL    |                |
| COUNTRY          | varchar(255) | YES  |     | NULL    |                |
| COUNTY           | varchar(255) | YES  |     | NULL    |                |
| MAINPHONENUMBER  | varchar(255) | YES  |     | NULL    |                |
| POSTCODE         | varchar(255) | YES  |     | NULL    |                |
| SECTOR           | varchar(255) | YES  |     | NULL    |                |
| TOWN             | varchar(255) | YES  |     | NULL    |                |
| WEBSITEURL       | varchar(255) | YES  |     | NULL    |                |
+------------------+--------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)

mysql> 

مقتطف كيان المجال الخاص بي:

@Id
@GeneratedValue
@Column(name="ID")
private Integer id;

مقتطف تاريخ الاختبار أحاول إجبار DBUNIT على استخدامه:

<dataset>
  <CLIENT ID="-1"
    ADDRESS1="Endeavour House"
    ADDRESS2="Russell Rd"
    COUNTRY="England"
    COUNTY="Suffolk"
    MAINPHONENUMBER="0845 606 6067"
    NAME="Suffolk County Council"
    POSTCODE="IP1 2BX"
    SECTOR="Local Government"
    TOWN="Ipswich"
    WEBSITEURL="www.suffolk.gov.uk"/>
</dataset>

لا أستطيع التفكير في أي شيء آخر لمحاولة، وقد أسقطت الجداول وإعادة ترجمة رمز جافا، أي أفكار؟

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

المحلول

لا تحاول أن تحاول وضعها على عميل قاعدة البيانات مع معرف مجموعة بالفعل؟ معرف العمود هو القراءة فقط، يمكن فقط قاعدة البيانات "الكتابة" لذلك.

نصائح أخرى

لقد تلقيت هذه المشكلة أيضا بعد إضافة عمود إلى أحد كياناتي (باستخدام قاعدة بيانات HSQL داخل الذاكرة).

تمكنت من حل هذه المشكلة ببساطة عن طريق حذف الملفات المؤقتة التي تم إنشاؤها مسبقا: MEM: TESTDB.LOG، MEM: TESTDB.Properties and Mem: TestDB.Script

لماذا حدث هذا الخطأ؟ => يتم تخزين مخطط قاعدة البيانات في ملف MEM: TESTDB.Script ولم يتم إعادة إنشاءه عند تعديل الكيان.

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

ركضت في نفس الخطأ، لحسن الحظ كان لدينا بعض الاختبار آخر مكتوب سابقا ووجدت أنه في معظم البرامج التعليمية هو تنسيق الطريقة التي كتبها XML هي for flatxmldataset إذا كنت تستخدم مجموعة بيانات XML ثم الإصدار الصحيح هو متابعة الخروج الرابط في أسفل لمزيد من المعلومات.

يجب أن يكون بالتنسيق التالي.

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <table>
        <column>id</column>
        <column>name</column>
        <column>department</column>
        <column>startDate</column>
        <column>endDate</column>
        <row>
            <value>999</value>
            <value>TEMP</value>
            <value>TEMP DEPT</value>
            <value>2113-10-13</value>
            <value>2123-10-13</value>
        </row>
    </table>
</dataset>

لمزيد من المعلومات، انتقل إلى هذا الرابط.

http://dbunit.sourceforge.net/components.html#flatxmldataset.

في وقت آخر، واجهت هذا الخطأ في مشروع آخر، لدينا تسلسل هرمي للفئة النموذجية، وكيفية استخدام السبات لإنشاء دور جدول مع 7 أعمدة ولكن أثناء تشغيله مع DBUNIT أنه غير قادر على إنشاء الأعمدة (تم إنشاء 5 فقط) وبالتالي، كان رمي هذا الخطأ، الحل: أنشأ يدويا هذا الجدول و 3 جداول علاقة أخرى لم يتم إنشاؤها بواسطة السبات.

يذهب هذا الخطأ بعيدا مع MySQL و HSQL إذا قمت بإجراء التنسيق = شقة

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