我在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'。
是功能还是错误?我做错了什么?
答案 0 :(得分:0)
查看指南http://orientdb.com/docs/last/SQL-Update.html 试试这个查询 更新testClass在@rid
之后设置lock = true返回