أورينت دي بي تواجه مشكلة مع يونيكود ، التركية ، و إنومز

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

سؤال

أنا باستخدام ليب الذي يحتوي على نوع إنوم مع كونسس مثل هذه;

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

http://mail-archives.apache.org/mod_mbox/xmlbeans-user/201001.mbox/%3CSNT123-DS11993DD331D6CA7799C46CF6650@phx.gbl%3E

http://mail-archives.apache.org/mod_mbox/cxf-users/201203.mbox/%3CBLU0-SMTP115A668459D9A0DA11EA5FAF6460@phx.gbl%3E

https://vaadin.com/forum/-/message_boards/view_message/793105

http://comments.gmane.org/gmane.comp.apache.cxf.user/18316

عمل واحد هو الكتابة Type.ST ثم اضغط السيطرة الفضاء.يجب أن يكمل الكسوف اسم المتغير تلقائيا دون الحاجة إلى معرفة كيفية إدخال رأس مال بدون نقاط على لوحة مفاتيح تركية.:)

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