房间:使用@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) } }