2015-10-15 2 views
0

У меня есть схема менее класс в моем OrientDB, скажем, это называется «TestClass», это довольно просто и содержит 1 булево свойство:OrientDB: ОБНОВЛЕНИЕ результат запроса в распределенном режиме

{ 
    lock : 'true' 
} 

Когда я выполнить обновление запрос с помощью консоли или веб-интерфейс:

update testClass set lock = true 

я получил

Updated record(s) '1' in 0.033000 sec(s). 

из консоли и аналогичного результата из веб-сайтов.

Тот же результат я получил, когда я выполнить следующий код Java

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

«результат» переменная типа Integer и содержит число обновленных записей.

Но все меняется, когда сервер OrientDB запускается в распределенном режиме (у меня есть 3 узла). Выполнение одного и того же запроса с консоли создает:

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

Как вы можете видеть, теперь результатом является массив, и он пуст. То же самое я получил от Java - переменная «result» имеет тип ArrayList и пуста. Самый интересный результат показывает web ui - когда я выполняю тот же запрос, у меня есть столбец «[1]» в столбце «значение», что означает, что, как я полагаю, этот результат является массивом и содержит 1 целочисленное значение «1», ,

Является ли это признаком или ошибкой? Что я делаю не так?

+0

Я думаю, что это связано с тем, в распределенном режиме вы получили результат «уменьшить», но неизвестный разум не управляется корректно в консоли. Обновлена ​​ли запись? – Lvca

+0

Да, запись в БД обновляется. Самое главное для меня было получить количество обновленных записей в Java-коде, потому что я попытался реализовать простую оптимистичную блокировку для распределенного приложения. Исходным запросом было «update testClass set lock = true, где lock = false» – Tim

+0

Это исправлено в последней ветви 2.1.x. – Lvca

ответ

0

Глядя на руководство http://orientdb.com/docs/last/SQL-Update.html попробовать этот запрос, обновление TestClass установить стопорное = истинное возвращение после @rid

+0

Спасибо! Это не совсем то, что я хотел, но это может помочь – Tim