[英]How to return a POJO from room query
我有一個房間查詢,它返回POJO
幾個字段。 例如。 查詢僅返回group_id
, group_name
但是POJO
具有更多字段,例如sender_name
,message等。如果我編譯代碼,它將給我一個錯誤。 我看到構建失敗,但是沒有與ROOM
相關的錯誤。
我想知道我在POJO
比查詢返回內容更多的字段。 因為如果僅在POJO
保留group_Id
和group_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.