相关疑难解决方法(0)

Android with Room - 如何设置外键可空

我在Android应用中使用Room.一个表(stock_move)包含几个外键.在某些情况下,我需要插入一个没有FK(locationDestId)的stock_move.在这种情况下,SQLite引发错误:

io.reactivex.exceptions.OnErrorNotImplementedException:外键约束失败(代码19)

有我的实体:

@Entity(tableName = "stock_move",
    foreignKeys = {
            @ForeignKey(
                    entity = LocationEntity.class,
                    parentColumns = "id",
                    childColumns = "location_id",
                    onDelete = CASCADE

            ),
            @ForeignKey(
                    entity = LocationEntity.class,
                    parentColumns = "id",
                    childColumns = "location_dest_id",
                    onDelete = CASCADE
            ),
            @ForeignKey(
                    entity = ProductEntity.class,
                    parentColumns = "id",
                    childColumns = "product_id",
                    onDelete = CASCADE
            ),
            @ForeignKey(
                    entity = UomEntity.class,
                    parentColumns = "id",
                    childColumns = "uom_id",
                    onDelete = CASCADE
            )
    }
)
public class StockMoveEntity {
    @PrimaryKey(autoGenerate = true)
    private int id;

    private String name; …
Run Code Online (Sandbox Code Playgroud)

android-sqlite android-room

7
推荐指数
1
解决办法
2532
查看次数

标签 统计

android-room ×1

android-sqlite ×1