Java Orient DB-文档和集群映射

Java Orient DB-文档和集群映射,java,database,orientdb,Java,Database,Orientdb,我使用的是Orient DB文档模型。保存文档的我的代码- private ODocument saveDocument(ODocument document) { ODatabaseRecordThreadLocal.INSTANCE.set(database); return document.save(); } 我们从一些类型创建类,一些文档类是在运行时创建的,因此是无模式的 当ODocument属于已在模式中定义的类时,保存代码可以正常工作。例如

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

private ODocument saveDocument(ODocument document) {
        ODatabaseRecordThreadLocal.INSTANCE.set(database);
        return document.save();
    }
我们从一些类型创建类,一些文档类是在运行时创建的,因此是无模式的

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

schema.createClass("Status");
所以如果我这样做了

document = new ODocument("Status");
save(document)
那么上面的代码就可以正常工作了

但如果我这样做了

doument = new ODocument("RawData");
save(document)
然后我得到一个例外-

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

附:有一天,当我的应用程序中只有一个DB时,这段代码运行得很好。然后我改为使用多DB方法,在我的应用程序中有两个DB实例


谢谢你的帮助

如果有多个数据库,则应设置要使用的当前数据库,包括:

ODatabaseRecordThreadLocal.INSTANCE.set( database2 );

查看:

您正在使用哪个版本的OrientDB?从我丰富的经验来看,这可能是他们方面的一个缺陷……我就是1.7.6版本using@MateuszDymczyk:谢谢!!移动到2.0.6使其工作我已经这样做了,但它不工作..然而移动到orient 2.0.6使问题消失:不确定为什么1.7.6不使用相同的代码。
ODatabaseRecordThreadLocal.INSTANCE.set( database2 );