Как я могу пакетно обновить все объекты в классе User (Parse.com, Android)?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу пакетно обновить все объекты в классе User (Parse.com, Android)?

Сообщение Anonymous »

Изначально я допустил ошибку и забыл инициализировать свое поле массива (дизайны) при регистрации пользователя, поэтому на панели инструментов Parse строки отображаются как (неопределенные), где я бы предпочел, чтобы они были []< /код>. Мне нужно сделать это примерно для 5000 пользователей. Я попробовал следующий код:

var query = new Parse.Query("User");
query.equalTo("designs", "(undefined)");
query.each(function(obj) {
obj.set("designs", "[]");
return obj.save();
}).then(function() {
// All objects updated.
}, function(err) {
console.log(err);
});


Я думаю, что (не определено) должно быть что-то другое, но я не уверен, что именно, поскольку это, вероятно, не строка. Как я могу решить эту проблему?

Обновление: вторая попытка. Это становится ближе?

private void updateAllRows(final int skip) {

ParseQuery
query = ParseUser.getQuery();
query.setLimit(500);
query.setSkip(skip);
query.whereDoesNotExist("designs");
query.findInBackground(new FindCallback() {

@Override
public void done(List results, ParseException e) {
if (results.size() > 0) {

// The query was successful.
for (int i = 0; i < results.size(); i++) {
ParseUser user = results.get(i);
String[] designs = new String[0];
user.put("designs", Arrays.asList(designs));

try {
ParseUser.saveAll(results);
if (results.size() >= 500) {
updateAllRows(skip + 500); // make a recursion call with different skip value
}
} catch (ParseException e1) {
e1.printStackTrace();
}
}

Log.d(getClass().toString(), ": The batch job was successfully completed.");

} else {
// The query was unsuccessful.
Log.d(getClass().toString(), ": The batch job was not successful.");
}
}
});
}


Я вызываю указанную выше функцию, используя следующий метод onCreate моего класса:

int skip = 0;
updateAllRows(skip);


Это лучший способ сделать это без использования кода Cloud?

Ошибка:< /strong>

08-08 12:38:43.034 24003-24053/? E/HttpOperation: [luq{checkandengageuser, getmobileexperiments}] Unexpected exception
java.io.IOException: 1 of 2 operations in the batch failed
at luj.a(PG:268)
at lth.o(PG:10642)
at ltc.a(PG:1402)
at lth.i(PG:154)
at ly.f(PG:51849)
at dsr.a(PG:1255)
at dsr.a(PG:20077)
at dsr.a(PG:706)
at dss.run(PG:1548)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)


Подробнее здесь: https://stackoverflow.com/questions/388 ... om-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»