首页 > 解决方案 > 唯一约束失败:query_table.ID(代码 1555 SQLITE_CONSTRAINT_PRIMARYKEY[1555]

问题描述

我的项目中有以下实体 -

@Entity(tableName = "query_table")
public class QueryModel {


    @PrimaryKey
    private int ID;

    private int productID;

    private String vendorName;

    private String productName;

    private String lateTimeUpdated;

    public QueryModel(String vendorName, String productName, String lateTimeUpdated, int productID) {
        this.vendorName = vendorName;
        this.productName = productName;
        this.lateTimeUpdated = lateTimeUpdated;
        this.productID = productID;
    }

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getProductID() {
        return productID;
    }

    public void setProductID(int productID) {
        this.productID = productID;
    }

    public String getVendorName() {
        return vendorName;
    }

    public void setVendorName(String vendorName) {
        this.vendorName = vendorName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getLateTimeUpdated() {
        return lateTimeUpdated;
    }

    public void setLateTimeUpdated(String lateTimeUpdated) {
        this.lateTimeUpdated = lateTimeUpdated;
    }
}

由于某些原因,开始填充本地数据库时出现以下错误 -

UNIQUE constraint failed: query_table.ID (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY[1555]

我知道这与我一次又一次地获得相同的值并覆盖它导致它崩溃有关,但是我该如何解决呢?

标签: androidandroid-room

解决方案


在构造函数上,您没有传递该id字段,并且我可以看到您通常不会对其进行初始化。

@PrimaryKey(autoGenerate = true)

    private int ID;

如果你这样走,有什么改变吗?如果它为空,它怎么可能是主键?


推荐阅读