Полиморфизм в Android Room при расширении не-Entity класса - PullRequest
0 голосов
/ 20 ноября 2018

Мой сервер отправляет мне список объектов типа Parent, как List<Parent> parents. Мне нужно сохранить этот список в Room и для этого мне нужен PrimaryKey.Итак, что я пытаюсь сделать в комнате, это создать что-то вроде

@Entity
class Child(mApple:String,mOrange:String):Parent(mApple,mOrange){
    @PrimaryKeyy(autoGenerate=true)
    var id:Int=0
}

И вот как выглядит родитель:

//it's a java class and so to be complete I will recreate it in Java
class Parent{
    private final String mApple;
    private final String mOrange;
    private final String mDerivative;

    public Parent(String apple, String orange){
        mApple=apple;
        mOrange=orange;
    mDerivation = someMagic(apple,orange)
    }

    //then a bunch of methods for dealing with the state variables
}

Причина, по которой я хочу расширить Child от Parent, заключается в том, чтооблегчает совместную работу с ребенком и родителем.Но комната не компилируется, и я подозреваю, что это связано с этим.К сожалению, Kotlin не указывает мне, где происходит ошибка.

  1. Действительно ли ошибка связана с тем, что Parent не является сущностью, а derivative не предоставляет установщика?

  2. Как получить в Android Studio более подробную информацию об этой ошибке, например, номер строки? (связана с соответствующими вопросами)

Единственные ошибки, которые я могу получить на вкладке build:

error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. 
error: Cannot find getter for field.    
error: Cannot find setter for field.    
error: Cannot figure out how to read this field from a cursor.  
error: Cannot find getter for field.    
error: Cannot find setter for field.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...