OrientDB:分布式模式下的UPDATE查询结果

时间:2015-10-15 21:20:43

标签: java orientdb

我在OrientDB中有一个无方案的类,假设它叫'testClass',它非常简单并且包含1个布尔属性:

{
    lock : 'true'
}

当我通过控制台或web ui执行更新查询时:

update testClass set lock = true

我有

Updated record(s) '1' in 0.033000 sec(s).
来自控制台的

和来自web ui的类似结果。

我执行以下Java代码时得到的结果相同

ODatabaseDocumentTx db = ... // open db connection
Object result = db.command(new OCommandSQL("update testClass set lock = true")).execute()

'result'变量的类型为Integer,包含更新记录的数量。

但是当OrientDB服务器以分布式模式启动时,一切都会改变(我有3个节点)。从控制台生成的相同查询的执行:

Updated record(s) '[null]' in 0.010000 sec(s).

如您所见,现在结果是一个数组,它是空的。我从Java得到的相同 - 'result'变量的类型为ArrayList,它是空的。 最有趣的结果显示了web ui - 当我执行相同的查询时,我在'value'列中得到'[1]',这意味着,我猜,结果是数组,它包含1个整数值'1'。

是功能还是错误?我做错了什么?

1 个答案:

答案 0 :(得分:0)

查看指南http://orientdb.com/docs/last/SQL-Update.html 试试这个查询 更新testClass在@rid

之后设置lock = true返回