Я пытаюсь добавить конвертер типов в свою сущность, но я обнаружил, что он работает только для базы данных, дао и области сущностей, а не в области полей сущности.
Например: когда я добавляю конвертер типов в такой области видимости сущности она работает нормально.
@Entity(tableName = "chat_history")
@TypeConverters(ChatEntityConverter::class)
class ChatHistoryEntity (
@PrimaryKey
@NonNull
@ColumnInfo(name = "history_id") val HID: Long?,
@ColumnInfo(name = "history_name") var pairedName: String?,
@ColumnInfo(name = "history_last_message") var lastMessage: String?,
@ColumnInfo(name = "history_last_date")
var lastDate: Date?
)
Но если я переместу ее в область видимости поля сущности, она не будет скомпилирована. :
error: Cannot figure out how to save this field into database.
Мой конвертер:
class ChatEntityConverter {
@TypeConverter
fun fromTimeStamp(date: Long?): Date? {
return when(date) {
null -> null
else -> Date(date)
}
}
@TypeConverter
fun dateToTimeStamp(date: Date?): Long? {
return when(date) {
null -> null
else -> date.time
}
}
}
Поскольку он также конвертирует длинный тип в тип даты, я не хочу, чтобы он работал в области действия сущности. Только в поле типа даты. Но я просто не мог его туда скомпилировать.