如何删除房间子表中的所有记录?

安德烈亚斯1234

我想使用 firebase 来刷新我的本地数据库。

我有 2 个表,一个是具有 ID、名称...的植物,另一个是具有一对一关系的植物 ID 的价格。

我认为,我可以将 firebase 数据库数据存储在我的 Room db 中,但是本地数据库不使用生成的 id,因此 id 与 firebase id 相同。

因此,当firebase实时数据库中的植物数据发生变化时,我从本地数据库中的植物表中删除所有记录,然后插入新的植物记录,但我想保留第二个(价格)表记录,其中包含植物 ID。其实我的问题是:房间抛出异常,因为它不能删除植物表。

我读了很多,我找到了一个提示,我可以设置 onDelete = NO_ACTION 但它没有帮助。

有人可以帮忙,我该如何解决这个问题?

如果我不向 Price 表添加数据,我可以刷新 Plant 表

My PlantEntity

@Entity(tableName = "plants")
public class PlantEntity {

    @PrimaryKey
    private Long id;

    @ColumnInfo(name = "name")
    private String name;

    @ColumnInfo(name = "active")
    private boolean active;

My PriceEntity

@Entity(tableName = "prices",
        foreignKeys = {
                @ForeignKey(
                        entity = PlantEntity.class,
                        parentColumns = "id",
                        childColumns = "plant_id",
                        onDelete = NO_ACTION),
                @ForeignKey(
                        entity = AmountUnitEntity.class,
                        parentColumns = "id",
                        childColumns = "amount_unit_id",
                        onDelete = NO_ACTION)})
public class PriceEntity {

    @PrimaryKey(autoGenerate = true)
    private Long id;

    @ColumnInfo(name = "description")
    private String description;

    @ColumnInfo(name = "min_price")
    private int minPrice;

    @ColumnInfo(name = "max_price")
    private int maxPrice;

    @ColumnInfo(name = "plant_id")
    private Long plantId;

    @ColumnInfo(name = "amount_unit_id")
    private Long amountUnitId;

And my PlantDao

@Insert
    void insert(List<PlantEntity> plantEntityList);

    @Update
    void update(PlantEntity plantEntity);

    @Delete
    void delete(PlantEntity plantEntity);

    @Query("DELETE FROM plants")
    void deleteAll();
迈克

如果您想为已删除的工厂保留 PriceEnity 行,那么您不能为工厂定义 ForeignKey,因为它是冲突的 Foreignkey 的约束。

如果您不想保留 PriceEntity 然后使用onDelete = CASCADE,这将删除父级的子级。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从 LDAP 中删除所有记录?

来自分类Dev

如何在Hibernate / JPA中的映射/子表上删除现有记录并插入新记录

来自分类Dev

从记录列表中删除所有记录

来自分类Dev

从记录中删除所有子记录

来自分类Dev

从Groovy的子表中删除记录

来自分类Dev

从Groovy的子表中删除记录

来自分类Dev

如何删除Google电子表格中的所有过滤器?

来自分类Dev

如何删除所有相关记录?

来自分类Dev

如何从SQL删除所有重复的记录

来自分类Dev

使SQLite删除表中的所有记录

来自分类Dev

删除表中以 < 开头的所有记录

来自分类Dev

如何删除记录以及ASP.NET(C#)中的所有相关记录

来自分类Dev

如何删除访问表中除最近记录以外的所有记录

来自分类Dev

如何删除记录以及ASP.NET(C#)中的所有相关记录

来自分类Dev

如何通过API从Hipchat获取房间的所有消息历史记录?

来自分类Dev

如何在Ember.js中删除模型的hasMany关联中的所有记录

来自分类Dev

如何在Ember.js中删除模型的hasMany关联中的所有记录

来自分类Dev

异步迭代所有“房间”记录一次

来自分类Dev

Android-如何删除Firebase中的房间

来自分类Dev

如何从列表中筛选数据以及如何从数据中删除现有房间

来自分类Dev

如何创建存储过程以删除表中特定日期之前的所有记录?

来自分类Dev

如何使用VBA循环从多个表中删除所有记录?Access 2010

来自分类Dev

如何从2个表中删除特定“客户”的所有跟踪记录?的MySQL

来自分类Dev

如何从数据库中删除符合我的条件的所有记录

来自分类Dev

如何从数据库中删除所有字段都相同的记录?

来自分类Dev

删除所有相关子行时删除父表数据形成laravel中的子表

来自分类Dev

如何从Aerospike中获取所有记录?

来自分类Dev

如何防止用户在 MS ACCESS 2013 中删除/编辑或添加子表单上的记录

来自分类Dev

如何删除varchar包含任何元素列表的所有记录?

Related 相关文章

  1. 1

    如何从 LDAP 中删除所有记录?

  2. 2

    如何在Hibernate / JPA中的映射/子表上删除现有记录并插入新记录

  3. 3

    从记录列表中删除所有记录

  4. 4

    从记录中删除所有子记录

  5. 5

    从Groovy的子表中删除记录

  6. 6

    从Groovy的子表中删除记录

  7. 7

    如何删除Google电子表格中的所有过滤器?

  8. 8

    如何删除所有相关记录?

  9. 9

    如何从SQL删除所有重复的记录

  10. 10

    使SQLite删除表中的所有记录

  11. 11

    删除表中以 < 开头的所有记录

  12. 12

    如何删除记录以及ASP.NET(C#)中的所有相关记录

  13. 13

    如何删除访问表中除最近记录以外的所有记录

  14. 14

    如何删除记录以及ASP.NET(C#)中的所有相关记录

  15. 15

    如何通过API从Hipchat获取房间的所有消息历史记录?

  16. 16

    如何在Ember.js中删除模型的hasMany关联中的所有记录

  17. 17

    如何在Ember.js中删除模型的hasMany关联中的所有记录

  18. 18

    异步迭代所有“房间”记录一次

  19. 19

    Android-如何删除Firebase中的房间

  20. 20

    如何从列表中筛选数据以及如何从数据中删除现有房间

  21. 21

    如何创建存储过程以删除表中特定日期之前的所有记录?

  22. 22

    如何使用VBA循环从多个表中删除所有记录?Access 2010

  23. 23

    如何从2个表中删除特定“客户”的所有跟踪记录?的MySQL

  24. 24

    如何从数据库中删除符合我的条件的所有记录

  25. 25

    如何从数据库中删除所有字段都相同的记录?

  26. 26

    删除所有相关子行时删除父表数据形成laravel中的子表

  27. 27

    如何从Aerospike中获取所有记录?

  28. 28

    如何防止用户在 MS ACCESS 2013 中删除/编辑或添加子表单上的记录

  29. 29

    如何删除varchar包含任何元素列表的所有记录?

热门标签

归档