android-room - 我如何将我的班级变成房间持久性中的实体?
问题描述
这是我第一次使用 Room Persistence Library,我很难理解实体的概念。
所以我有这两个类:
public class CapturedTime
{
@SerializedName("startTime")
@Expose
private Long startTime;
@SerializedName("endTime")
@Expose
private Long endTime;}
和
public class CapturedItem implements Parcelable {
private String serialNumber;
private CapturedTime firstCapturedTime;
private CapturedTime secondCapturedTime;}
我相信 CapturedTime 类非常简单,但我不知道应该为 CapturedItem 类做什么。我可以将 CapturedTime 变量放入列中,还是我应该先做一些步骤?
解决方案
buid.gradle
首先在文件中添加依赖
dependencies {
def room_version = "2.1.0-rc01"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
}
之后使用@Entity
注释将普通 POJO 类声明为 Room 持久性库中的实体。
@Entity(tableName = "your_table_name")
public class CapturedTime{
@SerializedName("startTime")
@Expose
@ColumnInfo(name = "start_time")
private long startTime;
@SerializedName("endTime")
@Expose
@ColumnInfo(name = "end_time")
private long endTime;
}
@ColumnInfo
用于声明表中的列名,如果不提供@ColumnInfo
注解,默认列名是变量名
如果要将自定义对象存储在房间中,请使用
@TypeConverters()
注释
在你的情况下,
@TypeConverters(CapturedTime.class)
private CapturedTime firstCapturedTime;
欲了解更多信息,请访问此
推荐阅读
- c++ - Visual Studio 2017 寻找 DLL 而不是 LIB
- mongodb - 连接到 AWS 上的新 MongoDB
- ms-access - 使 MS Access 号码字段显示为 null 而不是 0
- html - 在 Vue 中显示来自 API 的图像
- python - 带有 Tensorflow 的 Windows 10 上的 ML-Agent 的 Unity3D 机器学习设置
- jenkins - Jenkins - 主从设置问题
- azure - 从哪里获取现有 Asp.Net Core 应用程序的重定向 URI 和/或 ClientId
- regex - 如何使用正则表达式捕获多个未知数量的值
- javascript - 如何在一次()函数中删除未定义的返回(不更改以前的函数)
- matlab - 如何从字符串名称中获取数值(小数)