这是我第一次使用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变量分成几列,还是应该首先执行一些步骤?
答案 0 :(得分:0)
首先在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;
有关更多信息,请访问this