我正在使用orient db,我必须使用java导出指定的数据表。以下是我正在使用的代码:
ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/sampleDB").open("admin", "admin");
try {
OCommandOutputListener listener = new OCommandOutputListener() {
@Override
public void onMessage(String iText) {
// System.out.print(iText);
}
};
Set<String> abcd = new HashSet<String>();
abcd.add("sample_demo1_OnlineShopping");
System.out.println(abcd);
ODatabaseExport export = new ODatabaseExport(db, "DataCont/Data.gz", listener);
export.setIncludeInfo(false);
export.setIncludeClusterDefinitions(false);
export.setIncludeSchema(false);
export.setIncludeIndexDefinitions(false);
export.setIncludeManualIndexes(false);
export.setIncludeClasses(abcd);
// export.exportRecords();
export.exportDatabase();
export.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
db.close();
}
问题是,它不包括任何类。输出文件是这样的:
{"records":[]}
但是当我尝试没有“setIncludeClasses”时,它会打印数据库中可用的所有类。这个问题会出现什么问题。提前谢谢。
答案 0 :(得分:1)
将此行更改为:
abcd.add("sample_demo1_OnlineShopping".toUpperCase());
我没有在文档中找到它,但是 includeClasses 期望在UpperCase中使用类(对于 excludeClasses 也是如此)。
请参阅the source code。