我在Android项目中使用DBFlow,我想知道是否有更新整个对象的方法,而不是指定每个列,如下所示
// Native SQL wrapper
SQLite.update(Ant.class)
.set(Ant_Table.type.eq("other"))
.where(Ant_Table.type.is("worker"))
.and(Ant_Table.isMale.is(true))
.async()
.execute(); // non-UI blocking
来自指南 https://agrosner.gitbooks.io/dbflow/content/SQLiteWrapperLanguage.html
更新的“设置”部分支持不同类型的值:
基于此,我尝试将ContentValues传递给set方法
// Native SQL wrapper
SQLite.update(Ant.class)
.set(contentValues)
.where(Ant_Table.type.is("worker"))
.and(Ant_Table.isMale.is(true))
.async()
.execute(); // non-UI blocking
我收到编译错误
set (com.raizlabs....SQLOperator...) in Update cannot be applied
to (android.content.ContentValues)
答案 0 :(得分:0)
你需要这样称呼它:
SQLite.update(Ant.class)
.set().conditionValues(contentValues)
.where(Ant_Table.type.is("worker"))
.and(Ant_Table.isMale.is(true))
.async()
.execute();
源代码中的文档不清楚,但它应该以这种方式工作。