Android @DatabaseView не может найти мой вид - PullRequest
0 голосов
/ 14 января 2020

Я создал сложное представление базы данных для извлечения некоторых данных из моего tables:

@DatabaseView(viewName = "VIEW_SEDINTE_SPECIALE",
        value = "SELECT descriere AS description, UPPER(titlu) AS upperTitle," +
                "(CASE " +
                "WHEN puncte_premiu * 2 > 100 THEN 100 " +
                "ELSE puncte_premiu * 2 " +
                "END) AS doubledRewards " +
                "FROM sarcini")
public class SpecialTask {
    public String upperTitle;

    public String description;

    public Long doubledRewards;

    public SpecialTask(String upperTitle, String description, Long doubledRewards) {
        this.upperTitle = upperTitle;
        this.description = description;
        this.doubledRewards = doubledRewards;
    }
}

Я указал представление для базы данных в соответствии с документацией :

@Database(
        entities = {
                Role.class, Task.class, TaskHistory.class, User.class,
                Feedback.class, Location.class, Material.class,
                SessionMaterial.class, SessionTask.class,
                Problem.class, Session.class
        },
        views = {
                SpecialTask.class
        },
        version = 1
)
@TypeConverters(DateConverter.class)
public abstract class PersonalDevelopmentDatabase extends RoomDatabase { ... }

И в моем QueriesDao я хочу select everything из View:

@Dao
public interface QueriesDao {
    @Query("SELECT * FROM VIEW_SEDINTE_SPECIALE")
    LiveData<List<SpecialTask>> getSpecialTasks();
}

И я застрял со следующей ошибкой:

There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: VIEW_SEDINTE_SPECIALE)

Я прошел много постов, и никакое решение не помогло мне. Как мне решить это?

1 Ответ

0 голосов
/ 14 января 2020

Если вы добавляете новое представление или таблицу, вы должны увеличивать версию своей базы данных. Поэтому попробуйте обновить PersonalDevelopmentDatabase до версии 2.

...