我想用这样的自定义函数创建一个DAO对象
@Dao
interface DataAccessObjDao{
@Insert
fun insert(someEntity: SomeEntity)
@Ignore
fun sampleFun(){
insert(SumEntity())
}
}
但是编译器抱怨样本乐趣
类'DataAccessObjDao_Impl'必须声明为抽象或在'DataAccessObjDao
中实现抽象方法'sampleFun()'答案 0 :(得分:1)
@Ignore
用于属性或实体,不能在方法上使用。
您可以通过扩展界面来做到这一点:
fun DataAccessObjDao.sampleFun(){
// irrelevant code
}
或通过添加@Transaction
@Transaction
fun sampleFun(){
firstDelete()
thenInsert()
}
答案 1 :(得分:0)
正如您所写,Dao也可以是抽象类。您可以在抽象类内部定义带有主体的方法。但是Dao用于查询表,并且对于不同的表具有不同的Dao对象。如果他们只插入,删除,更新和选择查询会更好。我还使用BaseDao来最小化Dao代码。
您应该在LocalDataSource类内调用dao.insert(SumEntity()),该类在this guide中使用存储库。