次の3つのクラスがあります。
1) テレビ番組
@Entity
public class TvShow{
@Id
private String uuid;
private String url;
private String title;
...
@ToMany(referencedJoinProperty = "tvShowUuid")
private List<Episode> episodes;
2) エピソード
@Entity
public class Episode{
@Id
private String uuid;
@ToMany(referencedJoinProperty = "episodeUuid")
private List<Moment> moments;
//FK
private String tvShowUuid;
3) モーメント
@Entity
public class Moment{
@Id
private String uuid;
...
private String episodeUuid;
ご覧のとおり、それらの間の関係は次のとおりです。TvShow --> oneToMany --> Episode --> oneToMany --> Moment
完全に入力された TvShow オブジェクト (tvShow と呼ばれる) があると仮定すると、次のようにしてそのオブジェクトをデータベースに追加します。
final long rowId = daoSession.getTvShowDao().insertOrReplace(tvShow);
これにより、tvShow オブジェクトが TvShow テーブルに正しく追加されます。ただし、エピソードテーブルとモーメントテーブルはまったく読み込まれません。tvShow オブジェクトにはいくつかのエピソードがあり、各エピソードにはいくつかの瞬間があります。他の 2 つのテーブルにもそのデータが含まれていることを期待していましたが、そうではありません。
私は何を間違っていますか?各エピソードをループして (そして、各エピソードの各モーメントをループして) 代わりに手動で挿入する必要がありますか? =(