Uncaught exception received. android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: date_box.dateLong (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY)

개배박발불지은만자·2024년 6월 3일
0
  1. 빌드에는 에러가 나지 않고 logcat 에 Uncaught exception received. android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: date_box.dateLong (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY)라는 에러를 뿜는다.

  2. 발생이유는 아래와 같이 index 를 자동증가를 하지 않고 insert를 @Insert(onConflict = OnConflictStrategy.REPLACE) 하지 않으면 index가 중복될수 있어서 에러로 뿜는다.

//.entity

@Entity
data class test(
@Primary
val rid : Long
//.dao
@Insert 
  1. 해결책 : insert 에 onConflict = OnConflictStrategy.REPLACE 를 추가한다.
//.entity

@Entity
data class test(
@PrimaryKey(autoGenerate = false)
val rid : Long
//.dao
  @Insert(onConflict = OnConflictStrategy.REPLACE)
  suspend fun insert(entity: DateBoxEntity): Long

0개의 댓글