【发布时间】:2018-10-19 15:47:57
【问题描述】:
我遇到两个错误
错误:使用 @Relation 注释的字段不能是构造函数参数。这些值是在构造对象后获取的。
错误:使用 @Relation 注释的字段不能是构造函数参数。这些值是在构造对象后获取的。
我有两张桌子。一个是任务表,另一个是子任务表。对于任务表的每一个实体,都有一些子任务表的实体。
所以我试图从单个任务中获取所有任务和子任务列表
道:
@Query("Select * from TaskTable")
fun getTasks():List<TaskModel>
任务模型:
class TaskModel(
@Embedded
var taskTable: TaskTable,
@Relation(parentColumn = "id",
entityColumn = "taskId")
var subTaskTable: List<SubTaskTable>
)
任务表:
@Entity
data class TaskTable(
@PrimaryKey(autoGenerate = true)
var id:Int = 0,
var taskListId:Int = 0,
var title: String,
var details:String?
)
子任务表:
@Entity
data class SubTaskTable (
@PrimaryKey(autoGenerate = true) var id: Int = 0,
var taskId: Int = 0,
var title: String,
var details: String?)
build.gradle
//room
def room_version = "1.1.0"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
// Test helpers
testImplementation "android.arch.persistence.room:testing:$room_version"
我应用 kotlin-kapt 插件
帮我解决这个问题。我搜索堆栈溢出并实现了一些答案,但这不是固定的。
【问题讨论】:
标签: android kotlin android-room