使用ActiveAndroid从数据库获取列表

使用ActiveAndroid从数据库获取列表,android,sqlite,activeandroid,Android,Sqlite,Activeandroid,ActiveAndroid的新增功能(以及android数据库的总体功能)。我阅读了他们的文档,但我有一个问题 我有Route.class和LatLngPosition.class。路由由更多LatLngPosition节点组成 因此,我的实施是: @Table(name="Route") public class Route extends Model { @Column(name="Name") private String name; @Column(name="Time") priva

ActiveAndroid的新增功能(以及android数据库的总体功能)。我阅读了他们的文档,但我有一个问题

我有Route.class和LatLngPosition.class。路由由更多LatLngPosition节点组成

因此,我的实施是:

@Table(name="Route")
public class Route extends Model {

@Column(name="Name")
private String name;
@Column(name="Time")
private MyTime time;


public Route(String name, MyTime time) {
    super();
    this.name = name;
    this.time = time;
}

public Route(){
    super();
}

public List<LatLngPosition> getLatLngList(){
    return getMany(LatLngPosition.class, "Route");
}
...
}
我保存了一些数据以测试是否一切正常:

route1 = new Route("first", new MyTime(1,1,10,10));
LatLngPosition pos1 = new LatLngPosition(10,10, route1);
LatLngPosition pos2 = new LatLngPosition(10,15, route1);
pos1.save();
pos2.save();
route1.save();
那么为什么要从数据库中取回它呢

Route route = Route.load(Route.class, 1);
我可以调用
route.getName()
,它将正确返回name。但当我调用
route.getLatLngList()
时,我什么也得不到,列表的大小是0


为什么这样不行?我是否实现了正确的方式1-N关系?

这似乎有点愚蠢,但。。。在与其他类一起使用路由之前,您是否尝试过保存(插入)路由?我猜当你插入的时候,类会得到它的id,这个id可以在其他类中用作外键


route1=新路线(“第一”,新MyTime(1,1,10,10));
route1.save();
LatLngPosition pos1=新LatLngPosition(10,10,线路1);
LatLngPosition pos2=新LatLngPosition(10,15,线路1);
pos1.save();
pos2.save();

旁注:您确实意识到,使用这种模型,您不可能有相交的路线,是吗?

我解决了这个问题,我总是回来提出解决方案,但我忘记了这个问题。是的,这确实是问题所在,位置包含对路由的引用(外键),所以我必须先保存路由。我不知道你是怎么发现这个问题的,但我会接受你的回答。我完成了那个项目,它运行得很好(尽管定位服务并不像我想象的那样记录准确),我似乎有研究的诀窍,这会导致我在这里提出低投票率的问题;P
Route route = Route.load(Route.class, 1);