android - RoomDB Android 上特定字段的 @Update 未正确更新
问题描述
RoomDB Android 上特定字段的 @Update 未正确更新
调用 logger.updateLog(key, msg) 时,房间数据库没有更新我应该改用常见的@query 吗? 使用数据库检查器
在道班
@Dao
interface LogDao {
@Update(onConflict = OnConflictStrategy.REPLACE)
fun updateLog(obj: Log)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(vararg logs: Log)
在 impl 类中
override fun addLog(key: String, msg: String) {
executorService.execute {
logDao.insert(
Log(
msg,
key,
System.currentTimeMillis()
)
)
}
}
override fun updateLog(key: String, msg: String) {
executorService.execute {
logDao.updateLog(
Log(
msg,
key,
System.currentTimeMillis()
)
)
}
}
在演示者中
fun saveRecord(
key: String,
msg: String
) {
logger.isContainKey(key) {
if (it) {
logger.updateLog(key, msg)
} else
logger.addLog(key, msg)
}
}
解决方案
对于我的情况,只想更新字段键是否相同
这段代码对我来说很好
@Query("UPDATE logs SET timestamp = :timestamp, msg = :msg WHERE `key` = :key")
fun forceUpdate(msg: String,key: String,timestamp:Long)
fun updateLog(log:Log){
forceUpdate(log.msg,log.key,log.timestamp)
}
推荐阅读
- python - 如何在 Python 中找到 WebElement 的一般 xpath
- python - 为什么 asyncio.get_event_loop 方法检查当前线程是否是主线程?
- c# - 如何访问 USB 驱动程序以直接发送命令?C#
- c - 有效打印树节点及其所有子节点
- php - 如何优化 get_option() 的 sql 查询数?
- python - 检查图形路径是否有效时出现 KeyError
- python - 如何打印 mime 有效载荷
- javascript - 使用 FileField 编辑表单会删除文件
- mysql - 带有尺寸和引号的mysql排序字符串
- c# - 在 ASP.NET MVC 5 中,如何从 FormCollection 反序列化复杂对象?