3

ルームが再帰的な関係を持つことは可能ですか? このような親/子構造にネストできるエンティティがあります

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 を反復処理して子なしですべてのカテゴリを保存し、後で別のクエリで親コードによって子を取得できることはわかっていますが、再帰が可能かどうかを知りたいだけです。コードのような関係

4

1 に答える 1