У меня проблема с комнатой.
Я использую модификацию с Gson конвертером для остальных API, и я хотел бы поделиться pojos с комнатой. В целом это работает, но в некоторых случаях мне нужно игнорировать некоторые поля, потому что у меня есть список объектов. Я попытался использовать аннотацию @Ignore, но при ее использовании процесс сборки завершился неудачно со следующими ошибками:
ошибка: у сущностей и Pojos должен быть общедоступный конструктор. Вы
может иметь пустой конструктор или конструктор, параметры которого совпадают
поля (по имени и типу). Публичный выпускной класс Сервис {
^ ошибка: не удается найти установщик для поля.
приватный финал java.lang.String id = null;
^ ошибка: не удается найти установщик для поля.
приватный финал java.lang.String name = null;
^ ошибка: не удается найти установщик для поля.
закрытый финал java.lang.String description = null;
Итак, используя этот класс, все работает:
@Entity(tableName = "services")
data class Service(
@PrimaryKey val id: String,
val name: String,
val description: String,
val parentId: String?
)
С этим не получается:
@Entity(tableName = "services")
data class Service(
@PrimaryKey val id: String,
val name: String,
val description: String,
val parentId: String?,
@Ignore val test: String
)
Я использую эту версию комнаты:
implementation 'androidx.room:room-runtime:2.1.0-alpha06'
kapt 'androidx.room:room-compiler:2.1.0-alpha06'
Я знаю, что проблему можно решить, используя var вместо val и добавив вторичный конструктор, но я не хочу этого делать, я предпочитаю сохранять неизменное состояние моих полей.
Это ошибка аннотации игнорирования? Почему без этого все работает?
Любая помощь приветствуется:)