Могу ли я расширить простой класс объекта для создания объекта базы данных Room? - PullRequest
0 голосов
/ 27 августа 2018

Допустим, у меня есть простой класс объектов:

public class Test {

    public String teststring;

}

Но тогда я бы хотел создать еще один класс объектов, и на этот раз это будет класс Room Database:

@Entity(tableName = "test_table_one")
public class TestChildOne extends Test {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    public long test_id;

}

А потом я хотел бы создать еще один класс:

@Entity(tableName = "test_table_two")
public class TestChildTwo extends Test {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    public long test_id;

}

Проблема заключается в том, что String teststring родительского класса не будет иметь аннотации @ColumnInfo. На самом деле я не хочу устанавливать аннотацию @Entity в родительском классе, так как эти два дочерних класса будут из разных таблиц, как вы можете видеть.

Итак, я могу просто установить @ColumnInfo в родительском классе без установки @Entity? Будет ли это работать тогда, когда я создаю объект TestChildOne и задаю TestChildOne.teststring, или он выдаст ошибку?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 30 августа 2018

@ColumnInfo аннотация будет работать, даже если она находится в родительском классе, поэтому вы можете написать @ColumnInfo, даже если у класса нет @Entity аннотации

public class Test {
     @ColumnInfo( name = "yourColumnName" )
    public String teststring;

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