ルームが再帰的な関係を持つことは可能ですか? このような親/子構造にネストできるエンティティがあります
Category1
|_________Category2
|_________Category3
| |_________Category4
|_________Category5`
WebService から取得した json からこの構造をコピーしています。
これは私の現在のエンティティです:
@Entity(tableName = "categories")
public class Category
{
@PrimaryKey
@NonNull
private String code;
private String name;
private String parentCode;
@Relation(parentColumn = "code", entityColumn = "parentCode", entity = Category.class)
private List<Category> childrens;
}
しかし、コンパイル中に StackOverflow エラーが発生します。
原因: java.lang.StackOverflowError at android.arch.persistence.room.processor.PojoProcessor.doProcess(PojoProcessor.kt:113) at android.arch.persistence.room.processor.PojoProcessor.access$doProcess(PojoProcessor.kt:74) ) android.arch.persistence.room.processor.PojoProcessor$process$1.invoke(PojoProcessor.kt:105) で android.arch.persistence.room.processor.PojoProcessor$process$1.invoke(PojoProcessor.kt:74) でandroid.arch.persistence.room.processor.cache.Cache$Bucket.get(Cache.kt:46)
エンティティから子を削除し、json を反復処理して子なしですべてのカテゴリを保存し、後で別のクエリで親コードによって子を取得できることはわかっていますが、再帰が可能かどうかを知りたいだけです。コードのような関係