2014-05-23 80 views
5

我在Java的嵌入式情況下使用OrientDB。我在我的應用程序中創建數據庫和類並插入數據。當我通過控制檯查看數據時,可以看到數據庫中的類以及類中正確的行數。然而,當我試圖通過這個命令browse class testData來瀏覽類的數據,我收到以下錯誤嘗試通過控制檯瀏覽類時出現OrientDB錯誤

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只是爲了讓您瞭解數據的外觀。

一如既往,在此先感謝您的幫助!

回答

2

發現錯誤的原因...

當我解析我的源數據的列名,他們在形式integer name;,我忘了從名字剝去;。因此,當我在文檔中創建該字段時,該名稱的末尾有;,並且在嘗試瀏覽OrientDB控制檯中的類時導致錯誤。

相關問題