Таблица абстрактных классов ActiveAndroid

Кто-нибудь знает, можно ли создать таблицу для абстрактного класса в ActiveAndroid. Например, я мог бы иметь абстрактный класс Animal с двумя конкретными классами Dog и Cat. Я хочу иметь возможность сделать что-то вроде:

List<Animal> animals = new Select().from(Animals.class).execute(); 

Что приведет к «животным», содержащим всех спасенных кошек и собак. Или:

 Animal animal = new Select().from(Animals.class).where("name = ?", name).executeSingle(); 

Где «животное» может быть либо кошкой, либо собакой. К сожалению, когда я делаю это, я получаю исключение, потому что для абстрактного класса Animal не создается таблица. Кто-нибудь знает, как я могу это сделать с помощью ActiveAndroid?

    К сожалению, ActiveAndroid пока не поддерживает наследование моделей таким же образом ( https://github.com/pardom/ActiveAndroid/issues/14 , https://github.com/pardom/ActiveAndroid/issues/257 ).

    Если вы хотите изменить ActiveAndroid, вот что вы могли бы сделать:

    • Создайте аннотацию, которая позволяет определить модель ( Animals ) как нечто, что не сохраняется (см. com.activeandroid.annotation.Table ).
    • При попытке выполнить запросы для этого класса вы можете использовать отражение, чтобы определить его дочерние классы, а затем выполнить этот запрос для каждого дочернего класса.
    • Затем вы в основном возьмете список результатов для каждого запроса и объедините их в один список и вернете это.

    Честно говоря, я никогда не видел наследования в любых библиотеках Android ORM, и лично я не думаю, что это хороший шаблон дизайна для моделей. Возможно, вам захочется пересмотреть свои рассуждения о том, чтобы пойти по этому пути.