interface Marker<T : BaseFoo> {
fun getSpecialFoo(): List<T>
}
@Dao
interface FooDao: Marker<Foo> {
@Query("SELECT * FROM foo WHERE bar = :bar")
fun get(bar: Int): List<Foo>
@Transaction
override fun getSpecialFoo(): List<Foo> {
return get(1)
}
}
Это приводит к
Абстрактный метод DAO должен быть аннотирован одной и только одной из следующих аннотаций: Вставить, Удалить, Запрос, Обновить, RawQuery
Однако Marker
не помечено @Dao
и FooDao
уже переопределяет getSpecialFoo
.Почему эта ошибка все еще отображается?
Мне нужен Marker
, потому что мне нужен универсальный DAO, который имеет несколько методов.Есть ли способ обойти это?
Единственный способ, которым я могу придумать, это пометить дао на Any
и привести тип времени выполнения или создать оболочку для DAO.