Как мне превратить мой класс в сущность в комнате? - PullRequest
0 голосов
/ 12 июня 2019

Я впервые использую Библиотеку Постоянства в Комнате, и у меня возникают трудности с пониманием концепции сущности.

Итак, у меня есть два класса:

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 в столбцы или есть шаги, которые я должен сделать в первую очередь?

1 Ответ

0 голосов
/ 12 июня 2019

Первое добавление зависимости в 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;

Для получения дополнительной информации, пожалуйста, посетите это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...