簡體   English   中英

如何從房間查詢中返回POJO

[英]How to return a POJO from room query

我有一個房間查詢,它返回POJO幾個字段。 例如。 查詢僅返回group_idgroup_name但是POJO具有更多字段,例如sender_name ,message等。如果我編譯代碼,它將給我一個錯誤。 我看到構建失敗,但是沒有與ROOM相關的錯誤。

我想知道我在POJO比查詢返回內容更多的字段。 因為如果僅在POJO保留group_Idgroup_name ,則編譯成功。

@Query("SELECT group_id,group_name FROM group")
fun getGroups(): DataSource.Factory<Int, Chat>

    class Chat {

    @ColumnInfo(name = "group_id")
    var groupId: String = ""

    @ColumnInfo(name = "group_name")
    var groupName: String? = null

    var sender: String? = null

    @ColumnInfo(name = "created_by")
    var createdBy: String? = null

    @ColumnInfo(name = "message_id")
    var messageId: String? = null

    @ColumnInfo(name = "message")
    var text: String? = null
}

您需要將POJO類注釋為(Optional)

@Entity(tableName = "group")
class Chat {

@ColumnInfo(name = "group_id")
var groupId: String = ""

@ColumnInfo(name = "group_name")
var groupName: String? = null

var sender: String? = null

@ColumnInfo(name = "created_by")
var createdBy: String? = null

@ColumnInfo(name = "message_id")
var messageId: String? = null

@ColumnInfo(name = "message")
var text: String? = null
}

並將您的退貨類型更改為

@Query("SELECT group_id,group_name FROM group")
fun getGroups(): List<Chat>

(這可能會消除您的編譯錯誤)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM