【发布时间】:2018-07-05 08:32:23
【问题描述】:
好的,所以我尝试按照本指南进行操作:https://medium.com/google-developers/7-pro-tips-for-room-fbadea4bfbd1 这导致我得到这个代码:https://gist.github.com/florina-muntenescu/1c78858f286d196d545c038a71a3e864
当我遇到以下两个错误时,我尝试制作自己的示例:
错误:参数的类型必须是带有@Entity 注释的类或 它的集合/数组。
错误:不能在 Dao 类中使用未绑定的泛型。如果你想 创建一个基础 DAO,创建一个普通类,使用类型参数对其进行扩展 然后用@Dao 标记子类。
我不知道这两个错误是否相互关联,但我看不出它们发生在哪里,并且不能排除它们是相关的。
@Entity
public class Data {
@PrimaryKey
uuid: String
title: String
}
我的父道
@Dao
abstract class BaseDao<in T> {
@Insert
abstract fun insert(obj: T)
@Insert
abstract fun insert(vararg obj: T)
@Update
abstract fun update(obj: T)
@Delete
abstract fun delete(obj: T)
}
我的子类 dao
@Dao
abstract class SubclassDao : BaseDao<Data> {
@Query("SELECT * FROM Data WHERE uuid = :id")
abstract fun getDataById(id: String): LiveData<Data>
@Query("SELECT * FROM BowelMovementEvent")
abstract fun getData(): List<Data>
@Query("SELECT * FROM BowelMovementEvent")
abstract fun getEventById(id: String): LiveData<Data>
}
【问题讨论】:
标签: android inheritance kotlin dao android-room