【发布时间】:2020-09-12 09:56:46
【问题描述】:
我有一个标准的长字段
@PrimaryKey(autoGenerate = true)
val id:Long
但它是在过程中填充的,具有随机值。如果我尝试通过 DAO 将其添加到数据库中,则该 id 不会被 autoGenerate sqlite 引擎覆盖
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(i:MyTypeObject)
如果我将此类型字段设为可空,它也不起作用
@PrimaryKey(autoGenerate = true)
val id:Long?
有一种方法可以将 id 字段中的任何值强制转换为 db 中的自动增量值?
我从存储库 livedata 接收数据。在视图模型中
private val db = CurrencyDatabase.getInstance(getApplication())
private val dao = db!!.nalDao()
private val service = Executors.newFixedThreadPool(1)
fun addBook(book: CurrencyItem)
{
service.submit {
dao.insert(book)
}
}
【问题讨论】:
-
贴出调用插入的代码。
-
@Insert(onConflict = OnConflictStrategy.REPLACE) 有趣的插入(i:MyTypeObject)
-
不是DAO,“但它是在过程中填充的”..这个
-
我更新了问题。我使用的底部方法
-
OK 在dao.insert(book)之前设置id为0