Объясните как правильно работает и как правильно написать конвектор в room? java
Когда происходит сборка кода, то room выдает ошибку, что не может понять некоторые типы данных и просит их конвертировать. Как правильно нужно сделать конвекцию, чтобы room понимал данные?
К примеру
@ColumnInfo(name = "Birthday")
String Birthday;
Но приходит ошибка, по типу:
param:birthday -> matched field:unmatched
Полная ошибка выглядит так:
error: Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
public class Worker {
^
Tried the following constructors but they failed to match:
Worker(java.lang.String,java.lang.String,java.lang.String,java.lang.String,
java.lang.String,java.lang.String) -> [param:fname -> matched field:fname, param:lname -> matched field:lname, param:birthday -> matched field:unmatched, param:specName -> matched field:unmatched, param:specId -> matched field:unmatched, param:avatarUrl -> matched field:unmatched]
Update: Прочитал по больше статей, предполагаю, что ошибка может быть в конструкторе класса, но все типы данных я проверил и они введены корректно. Для большого анализа:
public class Worker {
@ColumnInfo(name = "LName")
String lname;
@ColumnInfo(name = "FName")
String fname;
@ColumnInfo(name = "Birthday")
String Birthday;
@ColumnInfo(name = "SpecName")
String SpecName;
@ColumnInfo(name = "SpecID")
String SpecId;
@ColumnInfo(name = "AvatarURL")
String AvatarUrl;
@Ignore
String Age;
public Worker(String fname, String lname, String birthday, String specName, String specId, String avatarUrl) {
this.fname = fname;
this.lname = lname;
this.Birthday = birthday;
this.SpecName = specName;
this.SpecId = specId;
this.AvatarUrl = avatarUrl;
}
Ответы (1 шт):
Я пока не могу писать комментарии. Попробуйте объявить ваши поля public.
Без модификатора, они packaje private и возможно Room не видит их. Или определите public геттеры и сеттеры. Думаю в этом проблема.
Ну и сразу второй вариант. Либо уберите конструктор, либо сделайте чтобы имена переменных в конструкторе, точно совпадали с именами в таблице