【发布时间】:2019-03-10 19:07:31
【问题描述】:
我有一个@Entity,它包含一个变量(自定义对象列表)以及表的其他字段。 我可以从这个实体中插入、获取和删除。
但我在更新实体时遇到问题:
我想更新包含表中自定义对象列表的特定字段,但在编译时会引发错误:
error: Query method parameters should either be a type that can be converted into a
database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
我可以更新完整的行对象,但问题在于更新这个单个字段。我在 @Database 类上使用 TypeConverters,但我尝试在 Dao 和更新函数本身上使用它们,但它报告了相同的错误。
有人可以帮我更新行中的这个特定字段吗,我不想为此提供这个实体的完整对象。
我的实体是:
@Entity data class TableName(
@PrimaryKey
var id: String = "",
@SerializedName("varOne")
@Expose
var varOne: List<CustomObjects>? = null)
更新方法是这样的:
@TypeConverters(MyTypeConverters.VarOneListTypeConverters::class)
@Query("Update TableName SET varOne = :varOneList")
abstract fun updateTableName(varOneList: List<CustomObjects>)
【问题讨论】:
-
您找到解决方案了吗?我也面临同样的问题。
-
对我来说也一样。 Room 似乎是一个了不起的 LIB,但我一直在为这种愚蠢的事情苦苦挣扎。
-
你能发布你的
VarOneListTypeConverters代码吗?
标签: android kotlin android-room typeconverter android-database