Возникла проблема с получением поля календаря из таблицы.
Мой фактический класс данных:
@TypeConverters(CalendarConverters::class)
@Entity(tableName = MY_TABLE)
data class MyEpg(
val updatedAt: Calendar,
val epgName: String,
val epgStartTime: Calendar,
val epgEndTime: Calendar,
@ColumnInfo(name = "calendar")
val calendar: Calendar,
val chName: String
) {
@ColumnInfo(name = "id")
@PrimaryKey(autoGenerate = true)
var id: Long = 0
}
Я использовал преобразователь типов как:
object CalendarConverters {
@TypeConverter
@JvmStatic
fun fromTimestamp(value: Long?): Calendar? = value?.let { value ->
GregorianCalendar().also { calendar ->
calendar.timeInMillis = value
}
}
@TypeConverter
@JvmStatic
fun toTimestamp(timestamp: Calendar?): Long? = timestamp?.timeInMillis
}
Я использовал следующий запрос:
@Query("select distinct ${MY_TABLE}.calendar from $MY_TABLE order by ${MY_TABLE}.calendar asc")
suspend fun getCalendars(): List<Calendar>
В представлении сборки отображается ошибка
Запрос возвращает некоторые столбцы [календарь], которые не используются java .lang. Объект. Вы можете использовать аннотацию @ColumnInfo в полях, чтобы указать отображение. Вы можете подавить это предупреждение, аннотируя метод с помощью @SuppressWarnings (RoomWarnings.CURSOR_MISMATCH). Столбцы, возвращаемые запросом: календарь. Поля в java .lang.Object:. publi c abstract java .lang.Object getCalendars (@ org.jetbrains.annotations.NotNull ()
ошибка: не уверен, как преобразовать курсор в тип возврата этого метода (java .lang) .Object). Publi c abstract java .lang.Object getCalendars (@ org.jetbrains.annotations.NotNull ()
Примечание. Я заметил этот преобразователь типов для преобразования в long используется, в то время как преобразование из long в date не используется.
Нет проблем при получении каких-либо отдельных полей или целого объекта, кроме одного элемента календаря.