android - 如何在房间中建立递归关系?
问题描述
我有消息列表。每条消息都可以有自己的消息。
@Entity(tableName = "message_item")
data class MessageEntity(
@PrimaryKey() @ColumnInfo(name = "local_id") val localId: String,
@ColumnInfo(name = "content") val content: String?,
@ColumnInfo(name = "reply_id") val replyId: String?
)
如果我创建递归 eobject,那么我会收到StackOverflow
异常
data class MessageWithReplyRecurciveEntity(
@Embedded val message: MessageEntity,
@Relation(
parentColumn = "reply_id",
entityColumn = "message_id",
entity = MessageEntity::class)
val replyMessage: MessageWithReplyRecurciveEntity?,
@Relation(
parentColumn = "user_id",
entityColumn = "user_id",
entity = MessageEntity::class)
val user: ChatUserEntity
)
如果我创建中间对象,则我缺少用户关系
data class MessageWithReplyRecurciveEntity(
@Embedded val message: MessageEntity,
@Relation(
parentColumn = "reply_id",
entityColumn = "message_id",
entity = MessageEntity::class)
val replyMessage: MessageWithReplyEntity?,
@Relation(
parentColumn = "user_id",
entityColumn = "user_id",
entity = MessageEntity::class)
val user: ChatUserEntity
)
data class MessageWithReplyEntity(
@Embedded val message: MessageEntity,
@Relation(
parentColumn = "reply_id",
entityColumn = "message_id",
entity = MessageEntity::class)
val replyMessage: MessageEntity?
)
如何妥善处理此类案件?
解决方案
推荐阅读
- powershell - 如何使用 Powershell 向 Windows 服务器添加角色和功能?
- c++ - Doxygen:如何处理复合中的匿名成员
- javascript - 当我仅将边框半径应用于视图的一侧时,React Native 中出现奇怪的变色
- git - GitHub:我可以查看我是否对分叉进行了更改吗?
- php - 本地环境中drupal 8的目录权限设置
- python - 重复的行合并在一行中,在熊猫中添加新列
- html - 监控本地文件并自动上传到 Google Cloud Bucket
- swift - 斯威夫特:NSBezier
- html - 将 HTML 内容保存到数据库是个好主意吗?
- html - 如何向 CSS 生成的箭头添加框阴影?