gpt4 book ai didi

Android Room 删除级联不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 22:25:09 24 4
gpt4 key购买 nike

我知道有很多关于此类主题的帖子,但它们都涉及 SQLite...(我的帖子是关于 Room 的)。

我在“Card”表和“Deck”表之间存在一对多关系。所以一张卡片有 1 张牌,一张牌有很多牌。插入和删除对于 1 行是可以的,但我想在删除这个卡片时删除卡片组中的卡片:关于删除级联关系。

我的代码:

(卡片类)

@Entity(tableName = "cards")
public class Card{

@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public int id;

@ColumnInfo(name = "face1")
public String face1;

@ColumnInfo(name = "face2")
public String face2;

@ColumnInfo(name = "id_deck")
@ForeignKey(entity = Deck.class, parentColumns = "id", childColumns =
"id_deck", onDelete = CASCADE)
public int id_deck;
}

甲板类:

@Entity(tableName = "decks")
public class Deck {

@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public int id;

@ColumnInfo(name = "nom")
public String nom;

public Deck(String nom){
this.nom = nom;
}

}

我做错了什么吗?当我移除卡片组时,卡片仍然存在。

最佳答案

您应该在您的 @Entity 注释中定义您的外键。

@Entity(tableName = "cards", foreignKeys = @ForeignKey(entity = Deck.class, parentColumns = "id", childColumns = "id_deck", onDelete = CASCADE))

Kotlin 更新

@Entity(tableName = "cards", foreignKeys = [ForeignKey(entity = Deck::class, parentColumns = ["id"], childColumns = ["id_deck"], onDelete = ForeignKey.CASCADE)])

关于Android Room 删除级联不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53798362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com