Не могу удалить сущность из комнаты
Я имею LoggedInUserEntity
а также UserRecentSearch
где последний имеет иностранные ключи LoggedInUserEntity
, Когда я хочу удалить LoggedInUserEntity
это возможно, если только нет 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
?
1 ответ
Вам нужно добавить свойство cascade в ограничение внешнего ключа для метода 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 из вашей БД любой из недавних поисков для этого пользователя с ключом foriegn также будет удален.