أورينت دي بي تواجه مشكلة مع يونيكود ، التركية ، و إنومز
-
29-10-2019 - |
سؤال
أنا باستخدام ليب الذي يحتوي على نوع إنوم مع كونسس مثل هذه;
Type.SHORT
Type.LONG
Type.FLOAT
Type.STRING
بينما أنا التصحيح في الكسوف ، حصلت على خطأ:
No enum const class Type.STRİNG
كما أنا باستخدام نظام تركي،هناك مشكلة في العمل أنا > أنا ولكن لأن هذا هو كونست إنوم، على الرغم من أنني وضعت كل سمات كما أوتف-8 ، لا شيء يمكن الحصول على ذلك سلسلة هو ما يجب أن يبحث عنه الكسوف.لكنه لا يزال يبحث عن سلسلة ولا يمكن العثور عليها ولا يمكنني استخدام ذلك.ماذا يجب أن أفعل من أجل ذلك?
مشروع > خصائص > ريسوس > ترميز ملف نصي هو أوتف-8 الآن.تبقي المشكلة.
تحرير: مزيد من المعلومات قد تعطي بعض القرائن التي لا أستطيع الحصول عليها;أنا أعمل على أورينت دي بي.هذه هي محاولتي الأولى ، لذلك أنا لا أعرف ما إذا كانت المشكلة يمكن أن تكون على حزم أورينتدب.ولكن أنا باستخدام العديد من ليبس الأخرى ، وأنا لم أر مثل هذه المشكلة.هناك إنوم أوتيب في هذه الحزمة ، وأنا أحاول فقط للاتصال بقاعدة البيانات.
String url = "local:database";
ODatabaseObjectTx db = new ODatabaseObjectTx(url).
Person person = new Person("John");
db.save(person);
db.close();
لا يوجد المزيد من التعليمات البرمجية التي أستخدمها حتى الآن.تم إنشاء قاعدة البيانات ولكن بعد ذلك أحصل على java.lang.IllegalArgumentException
:
Caused by: java.lang.IllegalArgumentException: No enum const class com.orientechnologies.orient.core.metadata.schema.OType.STRİNG
at java.lang.Enum.valueOf(Unknown Source)
at com.orientechnologies.orient.core.metadata.schema.OType.valueOf(OType.java:41)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLCreateProperty.parse(OCommandExecutorSQLCreateProperty.java:81)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLCreateProperty.parse(OCommandExecutorSQLCreateProperty.java:35)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:43)
at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.parse(OCommandExecutorSQLDelegate.java:28)
at com.orientechnologies.orient.core.storage.OStorageEmbedded.command(OStorageEmbedded.java:63)
at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:63)
at com.orientechnologies.orient.core.metadata.schema.OClassImpl.addProperty(OClassImpl.java:342)
at com.orientechnologies.orient.core.metadata.schema.OClassImpl.createProperty(OClassImpl.java:258)
at com.orientechnologies.orient.core.metadata.security.OSecurityShared.create(OSecurityShared.java:177)
at com.orientechnologies.orient.core.metadata.security.OSecurityProxy.create(OSecurityProxy.java:37)
at com.orientechnologies.orient.core.metadata.OMetadata.create(OMetadata.java:70)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.create(ODatabaseRecordAbstract.java:142)
... 4 more
هنا فئة أوتيب: http://code.google.com/p/orient/source/browse/trunk/core/src/main/java/com/orientechnologies/orient/core/metadata/schema/OType.java
والطبقة الأخرى;أوكومانديكسكوتورسكلكريتيبروبيرتي:http://code.google.com/p/orient/source/browse/trunk/core/src/main/java/com/orientechnologies/orient/core/sql/OCommandExecutorSQLCreateProperty.java
السطر 81 يقول: type = OType.valueOf(word.toString());
المحلول
هل أنا محق في افتراض أنك تقوم بتشغيل هذا البرنامج باستخدام لغة تركية؟ثم يبدو أن الخطأ موجود في السطر 118 من OCommandExecutorSQLCreateProperty:
Genacodicetagpreسيتعين عليك تحديد الإعدادات المحلية التي يجب استخدام قواعد الغلاف العلوي الخاصة بها ، ومن المحتمل أن يكون رمز العلامة العام بمثابة معلمة لتوليد رمز الترقيم.
نصائح أخرى
تتعلق هذه المشكلة باتصال قاعدة البيانات الخاصة بك.من المفترض أن هناك سلسلة في OrientDB في مكان ما، وأنت تقرأها، ثم تحاول استخدامها لتحديد عضو في التعداد.
أفترض في الكود الذي نشرته أن المتغير word
يأتي من البيانات الموجودة في قاعدة البيانات.إذا كان يأتي من مكان آخر، فالمشكلة هي "مكان آخر".إذا قام OrientDB، لسبب غريب، بإرجاع "STRING" كبيانات وصفية لإخبارك بنوع شيء ما، فهذا بالفعل عيب في OrientDB.
إذا كانت هذه السلسلة تحتوي فعليًا على حرف ı، فلن يكون لأي إعداد Eclipse أي تأثير على النتائج.سيكون عليك كتابة التعليمات البرمجية ل تطبيع أنا إلى أنا.
إذا قمت بتفريغ محتويات "الكلمة" كسلسلة من القيم السداسية لـ char
من الخيط، أعتقد أنك سترى شخصك يحدق بك مباشرة.يجب عليك تغيير ما هو موجود في قاعدة البيانات للحصول على حرف I قديم عادي.
لسوء الحظ، يتعلق الأمر بالإعدادات الإقليمية، لغة نظام التشغيل الخاص بك وهي تركية.
خياران للعمل حول الخيارات:
1. Change your regional settings to English-US
2. Give encoding to she jvm as command line param for setting locale to English
-Duser.language=en -Duser.region=EN
لقد قمت بإنشاء تقارير أخطاء لـ xmlbeans وexist وApache cxf لنفس المشكلة.التعداد إلى الأعلى هو نقطة الاستثناء.
بعض الروابط ذات الصلة:
https://issues.Apache.org/jira/browse/XMLSCHEMA-22
https://vaadin.com/forum/-/message_boards/view_message/793105
عمل واحد هو الكتابة Type.ST
ثم اضغط السيطرة الفضاء.يجب أن يكمل الكسوف اسم المتغير تلقائيا دون الحاجة إلى معرفة كيفية إدخال رأس مال بدون نقاط على لوحة مفاتيح تركية.:)