我正在学习room中的kotlin,在db中插入原始类型非常容易。下面是如何声明我的学生数据类的。
@Entity(tableName = "student")
data class Student(@PrimaryKey(autoGenerate = true) var id: Long = 0,
@ColumnInfo(name="studentID") var studentID: Long = 0,
@ColumnInfo(name="schoolID") var schoolID: Long = 0,
@ColumnInfo(name="guardianID") var guardianID: String = "",
@ColumnInfo(name="matrixNumber") var matrixNumber: String = "",
@ColumnInfo(name="name") var name: String = "",
@ColumnInfo(name="homework") var homework: ArrayList<Homework>,
@ColumnInfo(name="attendance") var attendance: ArrayList<Attendance>
) {}
Homework
和
Attendance
都是另一个包含各种基本类型的数据类;下面是
作业
数据类
@Entity(tableName = "homework")
data class Homework(@PrimaryKey(autoGenerate = true) var id: Long = 0,
@ColumnInfo(name="subject") var subject: String,
@ColumnInfo(name="teacher") var teacher: String,
@ColumnInfo(name="submissionDate") var submissionDate: String = "",
) {
}
我会在作业和出勤上都收到这个汇编错误
Cannot figure out how to save this field into database. You can consider adding a type converter for it.
如果重要的话,上面的所有数据都将通过改造来检索我在某个地方读到我需要用打字机的是吗?但我还不太清楚。
顺便说一句,我是从使用Java和SQLiteHelper开始的,所以以前使用POJO和ArrayList家庭作业以及课堂学生出勤对我来说都不是问题,所以我对Room的期望也是一样的。。我好像少了点什么。