Комната: Тип параметра должен быть классом, аннотированным @Entity или его коллекцией / массивом - PullRequest
0 голосов
/ 19 сентября 2018

Сначала я знаю, что это повторяющийся вопрос , но помеченный ответ не устранил ошибку.

Я пытаюсь создать общий интерфейс Dao в моей Библиотеке комнатного сопротивления после это руководство , но не может устранить ошибку "Тип параметра должен быть классом, аннотированным @Entity или его коллекцией / массивом" для универсального T в GenericDao.

GenericDao:

@Dao
public interface GenericDao<T> {
    @Insert
    long insert(T object);

    @Update
    void update(T... objects);

    @Delete
    void delete(T... objects);
}

Унаследованный Dao:

@Dao
public abstract class ExerciseDao implements GenericDao<Exercise> {

    @Query("SELECT * FROM exercises")
    public abstract LiveData<List<Exercise>> getAllExercises();

}

Объект:

@Entity(tableName = "exercises",
    indices = {@Index(value = {"name"}, unique = true)})
public class Exercise {
    @PrimaryKey (autoGenerate = true)
     int id;

    @ColumnInfo(name = "name")
    private String name;

    @ColumnInfo(name = "muscle_part")
    private int musclePart;

    @ColumnInfo(name = "is_shown")
    private boolean isShown;

    public Exercise(String name, int musclePart, boolean isShown) {
        this.name = name;
        this.musclePart = musclePart;
        this.isShown = isShown;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMusclePart() {
        return musclePart;
    }

    public void setMusclePart(int musclePart) {
        this.musclePart = musclePart;
    }

    public boolean isShown() {
        return isShown;
    }

    public void setShown(boolean shown) {
        isShown = shown;
    }
}

Я пробовал:

  • ИзменитьGenericDao к абстрактному классу.
  • Добавление / удаление аннотации @Dao в GenericDao
  • Добавление универсального объекта
  • Переопределение методов в дочернем Daos
  • ...

Но всегда с ошибкой.У кого-нибудь есть идеи, как решить эту проблему?

...