greenDaoと@ToManyの関係に問題があります。私がDBへの挿入をしているときのドリリングセッションは、簡単に@ToMany関係を取得できます。私の問題は、私がアプリケーションを再起動した後で、返されているリストが空である場合に発生します。greenDao @ToMany関係が動作していない、0を返す
Daily.class
@Entity
public class Daily extends BaseObservable implements Parcelable {
@Id(autoincrement = true)
private Long id;
@Unique
private String tag;
@SerializedName("summary")
@Expose
private String summary;
@SerializedName("icon")
@Expose
private String icon;
@SerializedName("data")
@Expose
@ToMany(joinProperties = {
@JoinProperty(name = "tag", referencedName = "dataTag")})
@OrderBy("id ASC")
private List<DailyData> data = new ArrayList<DailyData>();
DailyData.class
@Entity
public class DailyData extends BaseObservable implements Parcelable {
@Id(autoincrement = true)
private Long id;
@NotNull private String dataTag;
... [rest of the code]
私は(私がモデルを得るためにrxjava2を使用しています)DBへの挿入をやっている場所。私は別の順序でそれを挿入しようとしてきましたが、影響はありません。
public void insertCityToDatabase(City city) {
city.setName(cityLatLngList.get(getPosition()).getResult().getName());
city.getDailyWithoutId().setTag(city.getName());
city.getHourlyWithoutId().setTag(city.getName());
for (HourlyData hourlyData : city.getHourlyWithoutId().getHourlyDataWithoutId()) {
hourlyData.setDataTag(city.getName());
daoSession.insert(hourlyData);
}
for (DailyData dailyData : city.getDailyWithoutId().getDataWithoutId()) {
dailyData.setDataTag(city.getName());
daoSession.insert(dailyData);
}
daoSession.insert(city.getHourlyWithoutId());
daoSession.insert(city.getDailyWithoutId());
daoSession.insert(city.getCurrentlyWithoutId());
long id = daoSession.insert(city);
eventBus.post(new NewCity(id));
}
は、ここに私のDB Daily and DailyData、私も @ToMany(referencedJoinProperty = "ID")によって@ToMany関係をやって試してみましたdebuger Android Studio
ですが、結果は同じです。
@ToMany関係が機能していない理由は何ですか?
解決しましたか?私は同じ問題を抱えている – user3384194
いいえ、私はgreenDaoからこの問題のRealmに移動することを余儀なくされました。いったん私は新しいプロジェクトでgreenDaoをテストしようとしましたが、それは動作していましたが、なぜここではうまくいかないのか分かりません。 –