Параметры метода запроса должны быть либо типом, который можно преобразовать в столбец базы данных, либо списком/массивоAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Параметры метода запроса должны быть либо типом, который можно преобразовать в столбец базы данных, либо списком/массиво

Сообщение Anonymous »

У меня есть БД с пользовательским типом данных

Код: Выделить всё

FollowEntityType
[/b] как столбец.

Код: Выделить всё

@Entity(primaryKeys = arrayOf("id", "type"), tableName = "follow_info")
data class FollowInfoEntity(
@ColumnInfo(name = "id") var id: String,
@ColumnInfo(name = "type") var type: FollowEntityType,
)
Поскольку это пользовательский тип данных, я определил преобразователь типов.

Код: Выделить всё

class FollowDatabaseTypeConverter {

@TypeConverter
fun toFollowEntity(entityType: String?): FollowEntityType? {
return FollowEntityType.from(entityType ?: Constants.EMPTY_STRING)
}

@TypeConverter
fun toString(entityType: FollowEntityType?): String? {
return entityType?.name
}
}
Это отлично работает, и я могу хранить/извлекать значения в БД. Однако в одном из запросов сборка завершается неудачно.
Это запрос.

Код: Выделить всё

@Query("select * from follow_info where type in (:entityTypeList)")
fun getFollowedEntitiesByType(entityTypeList: List) : List
Сборка завершается ошибкой со следующей ошибкой.

Код: Выделить всё

Query method parameters should either be a type that can be converted into a database column or a List / Array that contains such type. You can consider adding a Type Adapter for this.
java.util.List

Подробнее здесь: [url]https://stackoverflow.com/questions/53885749/query-method-parameters-should-either-be-a-type-that-can-be-converted-into-a-dat[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»