Возможно ли многоуровневое наследование Sugar ORM?
Я работаю над приложением для Android и столкнулся с препятствиями с Sugar ORM.
Например, допустим, у меня есть эти классы.
public class Animal extends SugarRecord {
...
Animal() {
}
...
}
public class Dog extends Animal {
...
Dog () {
super();
}
...
}
public class Cat extends Animal {
...
Cat () {
super();
}
...
}
Очевидно, что у собак и кошек много общего, так же как и в реальных таблицах, которые я использую. Моя проблема в том, что, когда я пытаюсь сделать Dog или Cat и использовать метод save для них, в журналах говорится, что они сохраняются, но запрос на их покупку не работает, поэтому я не уверен, сохранены ли они в другой таблице или нет.,
Я попробовал эти следующие методы со всеми различными типами методов запросов без удачи.
Dog dog = new Dog(...);
dog.save();
Cat cat = new Cat(...);
cat.save();
Animal dog = new Dog(...);
dog.save();
Animal cat = new Cat(...);
cat.save();
// THIS IS THE ONLY ONE THAT WORKS
Animal animal = new Animal(...);
animal.save();
// This only returns the ones saved "Animal animal = new Animal(...)"
Select.from(Animal.class).list();
// This returns nothing
Select.from(Dog.class).list();
// This returns nothing
Select.from(Cat.class).list();
Используя скрипт миграции, я смог использоватьCREATE TABLE DOG(...)
который взорвался и сказал, что DOG уже существует, что означает, что таблицы создаются, просто либо не заполнены, либо недоступны.
При сохранении новых записей в виде собак и кошек распечатываетсяI/Sugar: Dog saved : 9
Так что следует сохранить это во что-то.
Кроме того, при выполнении запросов это то, что распечатываетD/SQL Log: SQLiteQuery: SELECT * FROM DOG
Любые идеи, если наследование действительно работает с Sugar ORM, или если есть что-либо вокруг него, кроме наличия 2 отдельных классов с избыточными данными в них? Или, если есть какая-либо другая библиотека, на которую вы бы порекомендовали посмотреть, чтобы можно было это сделать.
Спасибо.