ActiveAndroid の新機能 (および Android データベース全体の新機能)。ドキュメントを読みましたが、問題が 1 つあります。
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");
}
...
}
そして私の LatLngPosition クラス:
@Table(name="LatLng")
public class LatLngPosition extends Model {
@Column(name = "Latitude")
double latitude;
@Column(name = "Longitude")
double longitude;
@Column(name = "Route", onUpdate = Column.ForeignKeyAction.CASCADE, onDelete = Column.ForeignKeyAction.CASCADE)
Route route;
public LatLngPosition(double latitude, double longitude, Route route) {
super();
this.latitude = latitude;
this.longitude = longitude;
this.route = route;
}
public LatLngPosition(){
super();
}
...
}
すべてが機能するかどうかをテストするために、いくつかのデータを保存します。
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()
、名前が適切に返されます。しかし、私が呼び出すとroute.getLatLngList()
、何も得られず、リストのサイズは0です.
なぜこれが機能しないのですか?正しい方法で 1-N 関係を実装していますか?