Hel*_*oCW 6 android android-room
我正在通过https://github.com/googlecodelabs/android-paging上的示例代码学习 Room
代码A是定义@Entity一个表的a,大家可以看到。
通常它将@ColumnInfo注释添加到字段中,例如 @ColumnInfo(name = "first_name") val firstName: String?, ....
为什么作者要给@field:SerializedNameRoom数据库的某个字段添加注解?
代码A
@Entity(tableName = "repos")
data class Repo(
@PrimaryKey @field:SerializedName("id") val id: Long,
@field:SerializedName("name") val name: String,
@field:SerializedName("full_name") val fullName: String,
@field:SerializedName("description") val description: String?,
@field:SerializedName("html_url") val url: String,
@field:SerializedName("stargazers_count") val stars: Int,
@field:SerializedName("forks_count") val forks: Int,
@field:SerializedName("language") val language: String?
)
Run Code Online (Sandbox Code Playgroud)
该注释是Gson@SerializedName的一部分,用于定义Json中这些属性的名称。
该注释是Room@ColumnInfo的一部分,用于定义SQLite中这些属性的列名称。
如果这两个注释均未定义,则属性/字段名称将用作Json属性或列的名称。
为什么作者要在 Room 数据库的某个字段上添加 @field:SerializedName 注解?
因为Room实体被复用为Gson DTO。
| 归档时间: |
|
| 查看次数: |
1738 次 |
| 最近记录: |