1

我有LoggedInUserEntityUserRecentSearch最后一个在哪里有 foreignKeys LoggedInUserEntity。当我想删除LoggedInUserEntity时,如果数据库中只有 no 是可能UserRecentSearch的。

我该如何删除?

@Query("DELETE FROM loggedInUser")

我如何使用关系?

@Entity(tableName = "recentSearches",
    indices = arrayOf(Index(value = "userId",name = "idr")),
    foreignKeys = arrayOf(ForeignKey(
            entity = LoggedInUserEntity::class,
            parentColumns = arrayOf("id"),
            childColumns = arrayOf("userId"))
    ))

我如何删除LoggedInUserEntity现有的UserRecentSearch

4

1 回答 1

0

您需要将级联属性添加到 onDelete 方法的外键约束中,如下所示:

@Entity(tableName = "recentSearches",
    indices = arrayOf(Index(value = "userId", name = "idr")),
    foreignKeys = arrayOf(ForeignKey(
    entity = LoggedInUserEntity::class
        parentColumns = arrayOf("id"),
        childColumns = arrayOf("userId"),
        onDelete = CASCADE
    ))
))

这意味着当您从数据库中删除 LoggedInUser 时,该用户使用外键的任何最近搜索也将被删除。

于 2018-03-21T12:36:37.177 回答