【发布时间】:2018-05-29 19:40:44
【问题描述】:
您好,我想将 Sugar ORM 与继承一起使用。
我的课程:
public class Building extends SugarRecord<Building> {
protected String name;
}
和:
public class Kitchen extends Building{
int value =1;
}
当我保存一些厨房并列出它们时,我只能查询厨房 AS Kitchens,但不能查询 AS Buildings。
我能以某种方式解决这个问题吗?还是 Sugar ORM 没有这个功能?
日志记录:
List<Building> buildingsList = Building.listAll(Building.class);
for (Building buidling : buildingsList) {
Log.i("Buildings: ", buidling.toString());
}
List<Kitchen> kitchenList = Kitchen.listAll(Kitchen.class);
for (Kitchen kitchen : kitchenList) {
Log.i("Kitchens: ", kitchen.toString());
}
输出:
//Adding Kitchens,
10-04 13:10:53.212: I/Sugar(12104): Kitchen saved : 1
10-04 13:10:58.058: I/Sugar(12104): Kitchen saved : 2
10-04 13:10:58.455: I/Sugar(12104): Kitchen saved : 3
//Listing Buildings, nothing
10-04 13:11:16.993: D/SQL Log(12104): SQLiteQuery: SELECT * FROM BUILDING
*NONE*
//Listing as Kitchens, here they are:
10-04 13:11:16.993: D/SQL Log(12104): SQLiteQuery: SELECT * FROM KITCHEN
10-04 13:11:16.994: I/Kitchens:(12104): com.adamvarhegyi.clanwars.application.model.Kitchen@103ff5bd
10-04 13:11:16.994: I/Kitchens:(12104): com.adamvarhegyi.clanwars.application.model.Kitchen@354967b2
10-04 13:11:16.994: I/Kitchens:(12104): com.adamvarhegyi.clanwars.application.model.Kitchen@33859303
【问题讨论】:
-
如果您愿意考虑另一个可以轻松处理继承的 ORM,请尝试JDXA。 JDXA 可以多态地获取类层次结构中的对象。此外,JDXA 不需要您从任何基类扩展模型类。
标签: android inheritance orm sugarorm