我有两个实体 DBList
adnd DBListContent
。与DBList
和DBListContent
之间的一对多关系。
这是DBList
类
@Entity(tableName = "lists")
public class DBList {
@PrimaryKey
private String listId;
private String title;
private String createdDateTime;
}
这是DBListContent
@Entity(tableName = "listContents")
public class DBListContent {
@PrimaryKey
public String listContentId;
public String content;
public String lastEditedBy;
public String lastEditedDateTime;
@ForeignKey(entity = DBList.class, parentColumns = "listId", childColumns = "dbListId", onDelete = CASCADE)
public String dbListId;
}
当我在lists
表中删除一行时,listContents
表中的相应行不会删除。
我使用以下DAO方法删除了行
@Delete
void deleteLists(List<DBList> dbLists);
@Query("delete from lists")
void deleteLists();
我知道我缺少一些显而易见的东西。请引导我。
我不知道回答您的问题为时已晚,但是您遇到的错误是将@ForeignKey
放在字段中。
@ForeignKeys
必须进入表格。
您的代码应该看起来像。
@Entity(tableName = "listContents",foreignKeys ={
@ForeignKey(onDelete = CASCADE,entity = DBList.class,
parentColumns = "listId",childColumns = "dbListId")},
indices = {
@Index("dbListId"),
})
public class DBListContent {
@PrimaryKey
public String listContentId;
public String content;
public String lastEditedBy;
public String lastEditedDateTime;
public String dbListId;
}