首页 > 解决方案 > 在 dao room 数据库中创建一个带有 body 的自定义函数

问题描述

我想用这样的自定义函数创建一个 DAO 对象

@Dao
interface DataAccessObjDao{
    @Insert
    fun insert(someEntity: SomeEntity)

    @Ignore
    fun sampleFun(){
        insert(SumEntity())
    }

}

但编译器抱怨样本乐趣

类“DataAccessObjDao_Impl”必须声明为抽象或在“DataAccessObjDao”中实现抽象方法“sampleFun()”

标签: androiddaoandroid-room

解决方案


@Ignore用于属性或实体,不能用于方法。
你可以通过扩展你的界面来做到这一点:

fun DataAccessObjDao.sampleFun(){
    // irrelevant code
}

或通过添加@Transaction

@Transaction
fun sampleFun(){
    firstDelete()
    thenInsert()
}

推荐阅读