我尝试使用ActiveAndroid对列进行批量更新。这是我的代码:
new Update(SomeModel.class).set("Enabled = 0").execute();
但我得到(编辑:我的错,错误在其他地方)。有谁知道如何执行StackOverflowError
。Update()
查询?它在ActiveAndroid的维基中没有任何说法。
编辑:
这种语法是正确的:
new Update(SomeModel.class)
.set("Enabled = 0")
.where("Account = ?", account.getId())
.execute();
如果不需要,您可以跳过where
。
答案 0 :(得分:17)
这种语法是正确的:
new Update(SomeModel.class)
.set("Enabled = 0")
.where("Account = ?", account.getId())
.execute();
如果不需要,您可以跳过这里。
答案 1 :(得分:11)
基于AndroidActive's github:"保存方法适用于插入和更新记录。"
因此,如果要更新项目,首先必须从数据库中读取它,然后修改它,最后再次保存。
对于前:
Foo for = Foo.load(Foo.class, 1);//1 is the id
foo.bar = "new value";
foo.save();
答案 2 :(得分:1)
您也可以使用以下内容:
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();
}