Возможно ли в комнате иметь рекурсивные отношения?
У меня есть сущность, которая может быть вложена в структуры Parent / Childs примерно так:
Category1
|_________Category2
|_________Category3
| |_________Category4
|_________Category5`
Я копирую эту структуру из json, полученного из WebService.
Это моя текущая сущность:
@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
на android.arch.persistence.room.processor.PojoProcessor.doProcess (PojoProcessor.kt: 113)
на 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, чтобы сохранить каждую категорию без дочерних элементов, а затем получить дочерние элементы по родительскому коду в отдельном запросе, но я просто хочу знать, возможно ли иметь рекурсивное отношение, как в коде