房间:使用@Transaction 时收到错误
Room: Receiving error when using @Transaction
我的 DAO class 中有一个用 @Transaction 注释的方法,它导致了以下错误:
A DAO method can be annotated with only one of the following:Insert,Delete,Query,Update
这是我的 class:
@Dao interface Dao {
@Insert(onConflict = REPLACE) fun insertList(chacaras: List<String>)
@Query("SELECT * FROM chacara WHERE cityId = :cityId")
fun getListOfCity(cityId: String): LiveData<List<String>>
@Delete fun deleteList(chacaraList: List<String>)
@Transaction
fun updateList(list: List<String>){
deleteList(list)
insertList(list)
}
}
当我删除用@Transaction 注释的方法时,它可以正常编译。
有办法解决这个问题吗?
Marks a method in an abstract Dao class as a transaction method.
将您的 class 更改为:
@Dao abstract class Dao {
@Insert(onConflict = REPLACE) abstract fun insertList(chacaras: List<String>)
@Query("SELECT * FROM chacara WHERE cityId = :cityId")
abstract fun getListOfCity(cityId: String): LiveData<List<String>>
@Delete abstract fun deleteList(chacaraList: List<String>)
@Transaction
open fun updateList(list: List<String>){
deleteList(list)
insertList(list)
}
}
我的 DAO class 中有一个用 @Transaction 注释的方法,它导致了以下错误:
A DAO method can be annotated with only one of the following:Insert,Delete,Query,Update
这是我的 class:
@Dao interface Dao {
@Insert(onConflict = REPLACE) fun insertList(chacaras: List<String>)
@Query("SELECT * FROM chacara WHERE cityId = :cityId")
fun getListOfCity(cityId: String): LiveData<List<String>>
@Delete fun deleteList(chacaraList: List<String>)
@Transaction
fun updateList(list: List<String>){
deleteList(list)
insertList(list)
}
}
当我删除用@Transaction 注释的方法时,它可以正常编译。 有办法解决这个问题吗?
Marks a method in an abstract Dao class as a transaction method.
将您的 class 更改为:
@Dao abstract class Dao {
@Insert(onConflict = REPLACE) abstract fun insertList(chacaras: List<String>)
@Query("SELECT * FROM chacara WHERE cityId = :cityId")
abstract fun getListOfCity(cityId: String): LiveData<List<String>>
@Delete abstract fun deleteList(chacaraList: List<String>)
@Transaction
open fun updateList(list: List<String>){
deleteList(list)
insertList(list)
}
}