Ответ 1
Этот синтаксис верен:
new Update(SomeModel.class)
.set("Enabled = 0")
.where("Account = ?", account.getId())
.execute();
Вы можете пропустить, где не нужно.
Я пытаюсь сделать массовое обновление для столбца с помощью ActiveAndroid. Здесь мой код:
new Update(SomeModel.class).set("Enabled = 0").execute();
Но я получаю (Edit: My bad, ошибка была где-то в другом месте). Кто-нибудь знает, как выполнить запрос StackOverflowError
.Update()
? В Active Directory не говорится ничего.
Edit:
Этот синтаксис верен:
new Update(SomeModel.class)
.set("Enabled = 0")
.where("Account = ?", account.getId())
.execute();
Вы можете пропустить where
, если это не требуется.
Этот синтаксис верен:
new Update(SomeModel.class)
.set("Enabled = 0")
.where("Account = ?", account.getId())
.execute();
Вы можете пропустить, где не нужно.
База на AndroidActive github: "Метод сохранения работает как для вставки, так и для обновления записей".
Итак, если вы хотите обновить элемент, сначала вы должны его прочитать из базы данных, затем изменить его и, наконец, сохранить его снова.
Например:
Foo for = Foo.load(Foo.class, 1);//1 is the id
foo.bar = "new value";
foo.save();
Вы также можете использовать что-то вроде этого:
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();
}