使用 DBFlow 更新整个对象
Update entire object with DBFlow
我在我的 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
更新的 'Set' 部分支持不同类型的值:
- ContentValues -> 转换为 key/value 作为 is()/eq()
的 SQLOperator
- SQLOperator,作为 SET 语句的一部分组合在一起。
基于此,我尝试在set方法中传入一个ContentValues
// 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)
你需要这样称呼它:
SQLite.update(Ant.class)
.set().conditionValues(contentValues)
.where(Ant_Table.type.is("worker"))
.and(Ant_Table.isMale.is(true))
.async()
.execute();
文档和源代码都不清楚,但它应该是这样工作的。
我在我的 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
更新的 'Set' 部分支持不同类型的值:
- ContentValues -> 转换为 key/value 作为 is()/eq() 的 SQLOperator
- SQLOperator,作为 SET 语句的一部分组合在一起。
基于此,我尝试在set方法中传入一个ContentValues
// 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)
你需要这样称呼它:
SQLite.update(Ant.class)
.set().conditionValues(contentValues)
.where(Ant_Table.type.is("worker"))
.and(Ant_Table.isMale.is(true))
.async()
.execute();
文档和源代码都不清楚,但它应该是这样工作的。