我遇到了一个Room数据库的问题,当我尝试使用我在Dao类中声明的insert方法将数据写入数据库时,出现了这个错误:
唯一约束失败
有什么好办法吗?
Dao类
@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;
}
发布于 2018-05-28 10:15:48
我找出了这个错误,因为数据中没有唯一值(在primaryKey中),所以我让它自动生成,
模型类
@Entity
public class Task {
@PrimaryKey(autoGenerate = true)
private int uid;
...
}
发布于 2018-07-06 18:14:29
AppDatabase类
@Database(entities = {Task.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public abstract TaskDao mTaskDao();
}
模型类
@Entity
public class Task {
@PrimaryKey(autoGenerate = true)
private int uid;
@ColumnInfo(name = "task_name")
private String mName;
@ColumnInfo(name = "task_box")
private Integer mBox;
@ColumnInfo(name = "is_done")
private Integer mIsDone;
}
https://stackoverflow.com/questions/50558275
复制相似问题