Orient DB - 文档和群集映射

时间:2015-04-02 07:44:57

标签: java database orientdb

我正在使用Orient DB Document模型。我保存文档的代码 -

private ODocument saveDocument(ODocument document) {
        ODatabaseRecordThreadLocal.INSTANCE.set(database);
        return document.save();
    }

我们从某些类型创建类,并且在运行时创建一些Document类,因此无方案。

当ODocument属于已在模式中定义的类时,保存代码可以正常工作。示例我们有一个Status模式 -

schema.createClass("Status");

所以如果我这样做

document = new ODocument("Status");
save(document)

然后上面的代码工作正常。

但如果我这样做

doument = new ODocument("RawData");
save(document)

然后我得到OSchemaException -

Record saved into cluster collectionfile should be saved with class CollectionFile but saved with class RawData

其中CollectionFile是我数据库中的其他Schema。我的问题是为什么Orient试图将RawData文档保存在其他集群中。

P.S:当我在我的应用程序中使用单个数据库时,这段代码工作正常。然后我改为多DB方法,我的应用程序中有两个数据库实例。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您应该在多个dbs的情况下设置要使用的当前数据库,并使用:

ODatabaseRecordThreadLocal.INSTANCE.set( database2 );

请注意:http://www.orientechnologies.com/docs/last/Java-Multi-Threading.html