【问题标题】:Kotlin Dao SELECT query show error kaptDebugKotlinKotlin Dao SELECT 查询显示错误 kaptDebugKotlin
【发布时间】:2020-11-16 11:04:16
【问题描述】:

我在 kotlin 中添加了这个实体并选择 dao 查询到我的项目中

这个实体:

@NonNull  @ColumnInfo(name = "namee") val name: String
@NonNull  @ColumnInfo(name = "fav") val fav: String

和道:

@Query("SELECT namee FROM my_table WHERE fav = 1")
fun loadFav(): List<Detail_Entity>

当我运行我的项目时,我得到了这个错误:

任务“:app:kaptDebugKotlin”执行失败。
执行 org.jetbrains.kotlin.gradle.internal.KaptExecution 时发生故障
java.lang.reflect.InvocationTargetException(没有错误信息)

当我删除“namee”并将其替换为“”项目工作正常。但是当我像上面那样编写查询时,我得到了这个错误。使用“”的 SELECT 查询工作正常,但使用其他命令(如“SELECT column FROM ...”)将无法正常工作,并且出现此错误。我正在使用“pojo class”并得到同样的错误。

如何正确使用上述 SELECT 查询?

【问题讨论】:

  • 尝试将您的查询编辑为@Query("SELECT namee FROM my_table WHERE fav = '1'")。您应该将字符串常量用单引号括起来。

标签: android kotlin android-room dao


【解决方案1】:

问题出在这一行

fun loadFav(): List<Detail_Entity>

必须改为:

fun getfav(): LiveData<List<Detail_Entity_selectfav>>

您必须使用具有相同列的子类实体。

喜欢:

class Detail_Entity_selectfav {
    @NonNull
    var name : String =""
    @NonNull
    var imageName : String =""
}

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2011-01-17
    • 2018-05-09
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多