Ошибка OrientDB при попытке просмотреть класс через консоль

Я использую OrientDB во встроенной ситуации на Java. Я создаю базу данных и классы в своем приложении и вставляю данные. Когда я перехожу к просмотру данных через консоль, я вижу классы в базе данных вместе с правильным количеством строк в классах. Однако, когда я пытаюсь просмотреть данные в классе с помощью этой команды browse class testData, я получаю следующую ошибку

Error: com.orientechnologies.orient.core.exception.OSerializationException: Found invalid % character. Ensure it is opened and closed correctly.

Я просмотрел свои исходные данные, и они не содержат %. Я знаю, что OrientDB чувствителен к пробелам, особенно вокруг таких символов, как ), но опять же в данных, которые у меня есть, не используется символ, для которого, похоже, произошла ошибка.

Кто-нибудь сталкивался с такой ошибкой? Любые идеи о том, как решить ошибку?

Код для создания базы данных

private void createNewOrientDatabase(){
    String dbPath = "plocal:./db/test";
    orientDatabase = new ODatabaseDocumentTx(dbPath).create();
}

Код для создания классов

 public void createClasses(Table t){
    if(orientDatabase.getMetadata().getSchema().getClass(t.getName()) == null) {
        orientDatabase.getMetadata().getSchema().createClass(t.getName());
    }
 }

Код для вставки данных

public void insertData(Table table, TableSource data){
    for (String s : data){
        ODocument document = new ODocument(table.getName());
        String[] parts = s.split(",");
        for(int i = 0; i < table.getColumns().size(); ++i){
            document.field(table.getColumns().get(i).getName(),parts[i]);
        }
        document.save();
    }
}

Существует несколько классов, но для заданного класса данные могут выглядеть примерно так 43840,533,1,1,3,4 просто для того, чтобы дать вам представление о том, как выглядят данные.

Как всегда, заранее спасибо за любую помощь!


person mfunaro    schedule 23.05.2014    source источник


Ответы (1)


Нашел причину ошибки...

Когда я анализировал свои исходные данные для имен столбцов, они были в форме integer name;, и я забыл убрать ; из имени. Поэтому, когда я создал поле в документе, имя имело ; в конце, и это вызывало ошибку при попытке просмотреть класс в консоли OrientDB.

person mfunaro    schedule 23.05.2014