在一些情况下,我们可能需要为所有实体包含一些通用字段,如创建时间和最后修改时间等。这时,我们可以使用泛型来将这些字段添加到所有实体中。
首先,我们需要创建一个通用的基础实体类,它包含我们需要的通用字段:
@Entity
open class BaseEntity (
@ColumnInfo(name = "created_at")
var createdAt: Long,
@ColumnInfo(name = "updated_at")
var updatedAt: Long
) {
@PrimaryKey(autoGenerate = true)
var id: Long = 0
}
上述代码给出了一个包含创建时间和最后修改时间、具有自动生成ID的基础实体类。
然后,我们可以将这个基础实体类扩展到其他实体中:
@Entity
data class Note(
var title: String,
var content: String
) : BaseEntity(System.currentTimeMillis(), System.currentTimeMillis())
上述代码展示了一个名为“Note”的实体,它包含一个标题和正文,然后继承并附加通用字段。
这样就可以避免每个实体都要重复添加这些通用字段了。