首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android机房递归关系

Android机房递归关系
EN

Stack Overflow用户
提问于 2018-09-12 11:56:24
回答 1查看 1.8K关注 0票数 5

房间有可能有递归关系吗?我有一个可以嵌套在父/子结构中的实体,如下所示

代码语言:javascript
复制
Category1
 |_________Category2
 |_________Category3
 |  |_________Category4
 |_________Category5`

我正在从一个从WebService获得的json复制这个结构。

这是我目前的实体:

代码语言:javascript
复制
@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错误:

原因: android.arch.persistence.room.processor.PojoProcessor.doProcess(PojoProcessor.kt:113) at android.arch.persistence.room.processor.PojoProcessor.access$doProcess(PojoProcessor.kt:74) at android.arch.persistence.room.processor.PojoProcessor$process$1.invoke(PojoProcessor.kt:105) at android.arch.persistence.room.processor.PojoProcessor$process$1.invoke(PojoProcessor.kt:74) at android.arch.persistence.room.processor.cache.Cache$Bucket.get(Cache.kt:46)

我知道我可以从实体中移除子元素,并迭代json来保存没有子类的每个类别,然后在单独的查询中通过父代码获取子类,但我只想知道是否有可能像代码中的关系那样具有递归关系。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-14 09:50:46

简短的回答:不,你不能有递归关系。

很长的答案:在https://developer.android.com/reference/android/arch/persistence/room/Relation房间里阅读关于关系的文档我发现你不能在注释为@Entity的类中使用@Relation注释

注意@ relations注释只能在Pojo类中使用,实体类不能有关系。这是一个避免实体设置中常见缺陷的设计决策。您可以在主会议室文档中阅读更多有关它的信息。在加载数据时,您可以通过创建扩展实体的Pojo类来解决这个限制。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52294589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档