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
Any idea way?
Dao Class
@Dao
public interface TaskDao {
@Query("SELECT * FROM task")
List<Task> getall();
@Insert
void insert(Task task);
@Delete
void delete(Task task);
}
AppDatabase Class
@Database(entities = {Task.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract TaskDao mTaskDao();
}
Model Class
@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;
}
AppDatabase Class
@Database(entities = {Task.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public abstract TaskDao mTaskDao();
}
Model Class
@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;
}
I figure it out, that error because there is no unique value in data (in primaryKey) so I make it auto generated,
Model Class
@Entity
public class Task {
@PrimaryKey(autoGenerate = true)
private int uid;
...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With