我在Java的嵌入式环境中使用OrientDB。我正在我的应用程序中创建数据库和类并插入数据。当我通过控制台查看数据时,我可以看到数据库中的类,以及类中正确的行数。但是,当我尝试通过此命令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
,只是为了让您了解数据的外观。
一如既往,提前感谢您的帮助!
答案 0 :(得分:2)
找到错误的原因......
当我解析列名的源数据时,它们的格式为integer name;
,我忘记从名称中删除;
。因此,当我在文档中创建字段时,名称末尾有;
,这在尝试浏览OrientDB控制台中的类时导致错误。