唯一约束失败:query_table.ID(代码1555 SQLITE_CONSTRAINT_PRIMARYKEY [1555]

时间:2019-11-27 15:43:17

标签: android android-room

我的项目中有以下实体-

@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]

我了解这与我一次又一次获得相同的值并将其覆盖而使其崩溃有关,但是我该如何解决呢?

1 个答案:

答案 0 :(得分:1)

在构造函数上,您不会传递id字段,并且正如我所见,您通常不会初始化它。

@PrimaryKey(autoGenerate = true)

    private int ID;

如果您这样走,有什么变化吗?如果它为null,怎么能成为主键?

相关问题