首页 > 解决方案 > 无法确定房间数据库的返回类型

问题描述

我的实体

@Entity(tableName = "my_entity_table")
internal data class MYEntity(
    @PrimaryKey(autoGenerate = true)
    val pcID: Int,
    val server_id: String,
    val name: String,
    val detail: String,
    val duration: Int,
    val start_date : Long,
    val end_date: Long,
    val created_by_user_id: String,
    val db_create_dttm: Long,
    val db_update_dttm: Long,
    val db_create_src: Long,
    val db_update_src: Long
)

我的 dao 查询我在哪里选择持续时间、开始日期和结束日期

@Query("select duration,start_date,end_date from my_entity_table where id =:pcID")
    suspend fun getDurationDetails(pcID:Int) : What should be the return type?

查询的返回类型应该是什么?

标签: androidandroid-room

解决方案


您可以使用特定字段将特定数据类作为查询模型:

data class ExampleModel(
        @ColumnInfo(name = "duration") val duration: Int?,
        @ColumnInfo(name = "start_date") val start_date: Long?
        @ColumnInfo(name = "end_date") val end_date: Long?
    )

然后将其用作返回:

@Query("select duration,start_date,end_date from my_entity_table where id =:pcID")
    suspend fun getDurationDetails(pcID:Int) : ExampleModel

我认为使用 Entity 模型是不可能的,因为您的 Entity 参数不可为空,并且您只查询其中的几个参数。


推荐阅读