Подтвердить что ты не робот

Запрос ActiveAndroid Update()

Я пытаюсь сделать массовое обновление для столбца с помощью ActiveAndroid. Здесь мой код:

new Update(SomeModel.class).set("Enabled = 0").execute();

Но я получаю StackOverflowError. (Edit: My bad, ошибка была где-то в другом месте). Кто-нибудь знает, как выполнить запрос Update()? В Active Directory не говорится ничего.

Edit:

Этот синтаксис верен:

new Update(SomeModel.class)
  .set("Enabled = 0")
  .where("Account = ?", account.getId())
  .execute();

Вы можете пропустить where, если это не требуется.

4b9b3361

Ответ 1

Этот синтаксис верен:

new Update(SomeModel.class)
  .set("Enabled = 0")
  .where("Account = ?", account.getId())
  .execute();

Вы можете пропустить, где не нужно.

Ответ 2

База на AndroidActive github: "Метод сохранения работает как для вставки, так и для обновления записей".
Итак, если вы хотите обновить элемент, сначала вы должны его прочитать из базы данных, затем изменить его и, наконец, сохранить его снова.
Например:

Foo for = Foo.load(Foo.class, 1);//1 is the id
foo.bar = "new value";
foo.save();

Ответ 3

Вы также можете использовать что-то вроде этого:

SomeModel model = selectField("fieldName", "fieldValue");
model.field = newValue;
model.save();

где selectField() метод:

public static SomeModel selectField(String fieldName, String fieldValue) {
    return new Select().from(SomeModel.class)
            .where(fieldName + " = ?", fieldValue).executeSingle();
}