Gri*_*mer 8 sqlite android android-room
我有两个实体DBList加入DBListContent.随着一个之间一对多的关系DBList和DBListContent.
这是DBList班级
@Entity(tableName = "lists")
public class DBList {
@PrimaryKey
private String listId;
private String title;
private String createdDateTime;
}
Run Code Online (Sandbox Code Playgroud)
这里是 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;
}
Run Code Online (Sandbox Code Playgroud)
当我删除lists表中的行时,表中的相应行listContents不会被删除.
我使用以下Dao方法删除了行
@Delete
void deleteLists(List<DBList> dbLists);
@Query("delete from lists")
void deleteLists();
Run Code Online (Sandbox Code Playgroud)
我知道我错过了一些非常明显的东西.请指导我.
小智 13
我不知道回答你的问题为时已晚,但你所犯的错误就是放在@ForeignKey一个领域.
该@ForeignKeysMUST进去表声明.
你的代码应该是这样的.
@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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |