Android 使用带有列表的TypeConverter更新文件室字段时出错

Android 使用带有列表的TypeConverter更新文件室字段时出错,android,kotlin,android-room,Android,Kotlin,Android Room,从文件室获取列表时,它可以正常工作,但当我尝试更新它时,它会给我以下错误: android.database.sqlite.SQLiteException:接近“?”:语法错误(代码1 sqlite_错误):,编译时:更新提醒配置集alarmDays=?,?,?,?,?,?,?其中id=1 以下是查询: @TypeConverters(Converters::class) @Query("UPDATE reminderconfig SET alarmDays = :days WHERE

从文件室获取列表时,它可以正常工作,但当我尝试更新它时,它会给我以下错误:

android.database.sqlite.SQLiteException:接近“?”:语法错误(代码1 sqlite_错误):,编译时:更新提醒配置集alarmDays=?,?,?,?,?,?,?其中id=1

以下是查询:

@TypeConverters(Converters::class)
@Query("UPDATE reminderconfig SET alarmDays = :days WHERE id = 1")
suspend fun updateAlarmDays(days: List<Int>)
实体类:

@Entity
class ReminderConfig(

@PrimaryKey
val id: Int = 1,

@ColumnInfo
val timeInterval: Int = DEFAULT_INTERVAL_REPEATING,

@ColumnInfo
val startTime: Int = DEFAULT_START_TIME_PERIOD,

@ColumnInfo
val endTime: Int = DEFAULT_END_TIME_PERIOD,

@ColumnInfo
val alarmDays: List<Int> = listOf(0,1,2,3,4,5)
)
@实体
类提醒配置(
@主键
val id:Int=1,
@专栏信息
val timeInterval:Int=DEFAULT\u INTERVAL\u REPEATING,
@专栏信息
val startTime:Int=默认的开始时间周期,
@专栏信息
val endTime:Int=默认值\结束\时间\期间,
@专栏信息
val alarmDays:List=listOf(0,1,2,3,4,5)
)

这是一个bug,已在最新的Room Alpha版本(
2.3.0-alpha04
)中修复


您能编辑您的问题以包含实体类吗?当然,我刚刚添加了它。嗯。。。出于某种原因,Room认为
alarmDays
是一个
Int
,而不是一个
列表
,至少在
updateAlarmDays()
函数中是这样。是的,我查看了构建impl,出于某种原因,更新查询没有使用类型转换器,我检查了insert查询,它确实使用了TypeConverter@Joaco今天晚上我遇到了同样的问题。我认为这是一个bug,因为一般的读取查询可以成功地工作。只有在使用UPDATE时,才会在生成的文件中忽略TypeConverter。我在这里针对Room的问题跟踪程序打开了一个bug:
@Database(entities = [ReminderConfig::class], version = 1, exportSchema = false)
@TypeConverters(Converters::class)
abstract class ReminderDatabase : RoomDatabase() {
    abstract fun reminderDao(): ReminderDao
}
@Entity
class ReminderConfig(

@PrimaryKey
val id: Int = 1,

@ColumnInfo
val timeInterval: Int = DEFAULT_INTERVAL_REPEATING,

@ColumnInfo
val startTime: Int = DEFAULT_START_TIME_PERIOD,

@ColumnInfo
val endTime: Int = DEFAULT_END_TIME_PERIOD,

@ColumnInfo
val alarmDays: List<Int> = listOf(0,1,2,3,4,5)
)