본문 바로가기
개발/간단하게...

room 쓸 때 SQLITE_CONSTRAINT_PRIMARYKEY 에러나면?

by lonewhitedot 2023. 3. 12.
반응형

난 그냥 id에 -1 넣으면 알아서 해주는 줄 알았는데 그러면 안됨

@Entity(tableName = INV_ITEM_TABLE_NAME)
data class InvItem(
    @PrimaryKey val id: Int,
    @ColumnInfo(name = "item_name") val itemName: String,
    @ColumnInfo(name = "item_original_id") val itemOriginalId: String?,
    @ColumnInfo(name = "price") val price: Int,
    @ColumnInfo(name = "buy_date") @TypeConverters(DateConverter::class) val buyDate: Date,
    @ColumnInfo(name = "sell_date") @TypeConverters(DateConverter::class) val sellDate: Date?
)
val invItem = InvItem(-1, "test1", null, 55, Date(235235L), null)
repository.insertData(invItem)

 

그래서 아래처럼 바꾸니깐 해결

@Entity(tableName = INV_ITEM_TABLE_NAME)
data class InvItem(
    @ColumnInfo(name = "item_name") val itemName: String,
    @ColumnInfo(name = "item_original_id") val itemOriginalId: String?,
    @ColumnInfo(name = "price") val price: Int,
    @ColumnInfo(name = "buy_date") @TypeConverters(DateConverter::class) val buyDate: Date?,
    @ColumnInfo(name = "sell_date") @TypeConverters(DateConverter::class) val sellDate: Date?
){
    @PrimaryKey(autoGenerate = true)
    var id: Long? = null
}

 

val invItem = InvItem("test1", null, 55, Date(235235L), null)

 

 

 

반응형

댓글