唯一约束失败的房间数据库Android
问题描述:
我遇到了Room数据库的问题,当尝试使用我在Dao类中声明的insert方法将数据写入数据库时,出现此错误:
I'm facing a problem with Room database, when trying to use insert method that I declared in Dao Class to write a data into database this error shows up:
唯一约束失败
Unique constraint failed
有什么主意吗?
道课
@Dao
public interface TaskDao {
@Query("SELECT * FROM task")
List<Task> getall();
@Insert
void insert(Task task);
@Delete
void delete(Task task);
}
AppDatabase类
@Database(entities = {Task.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract TaskDao mTaskDao();
}
模型类
@Entity
public class Task {
@PrimaryKey
private int uid;
@ColumnInfo(name = "task_name")
private String mName;
@ColumnInfo(name = "task_box")
private Integer mBox;
@ColumnInfo(name = "is_done")
private Integer mIsDone;
}
答
我发现了这个错误,因为数据(在primaryKey中)没有唯一值,所以我将其自动生成,
I figure it out, that error because there is no unique value in data (in primaryKey) so I make it auto generated,
模型类
@Entity
public class Task {
@PrimaryKey(autoGenerate = true)
private int uid;
...
}