3

github上有一个问题,但是objectbox现在不支持级联删除。除了手动删除还有其他选择吗?

例如,型号:

@Entity
class User(val username: String = "") {
    @Id(assignable = true)
    var id: Long = 0

    @Backlink
    lateinit var comments: ToMany<Comment>
}

@Entity
class Comment(var text: String = "", var date: Date = Date()) {
    @Id(assignable = true)
    var id: Long = 0

    @Backlink
    lateinit var user: ToOne<User>
}

如果我想删除用户和他的所有评论,我应该这样做:

fun deleteUser(user: User, userBox: Box<User>, commentsBox: Box<Comment>) {
    commentsBox.remove(user.comments)
    userBox.remove(user)
}

但是,如果评论有自己的孩子,而且他们也有——嵌套可能非常大。

我想用BoxStore.subscribe(class: Class<Any>),但它不能给我User只删除他Comment的 s 的实例。

可以在没有反思和其他不良做法的情况下完成吗?

4

2 回答 2

2

目前,没有办法手动删除级联。编写您自己的删除方法来处理嵌套类。在单个事务中执行此操作通常是个好主意。

于 2018-03-08T15:28:11.010 回答
0

当然,Markus Junginger 是正确的(因为他是维护者)。目前不支持级联删除。

我只是想补充一点,这里有此功能的开放

于 2018-06-16T21:53:17.177 回答