房间:使用@Transaction时收到错误
我有一个方法在我的DAO类中使用@Transaction注释,这是导致以下错误:
DAO方法只能用以下其中一种进行注释:插入,删除,查询,更新
这是我的班级:
@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注解的方法时,它正常编译。 有没有什么办法解决这一问题?
根据交易文件
将抽象Dao类中的方法标记为事务方法。
改变你的课程:
@Dao abstract class Dao { @Insert(onConflict = REPLACE) abstract fun insertList(chacaras: List<String>) @Query("SELECT * FROM chacara WHERE cityId = :cityId") fun abstract getListOfCity(cityId: String): LiveData<List<String>> @Delete abstract fun deleteList(chacaraList: List<String>) @Transaction open fun updateList(list: List<String>){ deleteList(list) insertList(list) } }