android - Android @DatabaseView 找不到我的视图
问题描述
我创建了一个复杂的数据库视图来从我的获取一些数据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)
我浏览了很多帖子,但没有解决方案帮助我。我应该如何解决这个问题?
解决方案
如果添加新视图或表,则必须增加数据库的版本。所以尝试更新PersonalDevelopmentDatabase
到版本 2。
推荐阅读
- google-bigquery - 标准sql中的列联合
- influxdb - 如何计算 Influx 中某个值的出现次数?(通过...分组?)
- javascript - 如何确保使用 React 进行的第一次渲染具有来自 localStorage 的值?
- tensorflow - 尝试使用 tensorflow 2.0 中的 tensorflow.plugins.hparams 创建一堆不同的优化器
- java - 不断收到 SessionNotCreatedException:无法创建新服务:ChromeDriverService 错误
- r - 如何将 3d persp 图与 R 中的等高线图结合起来
- c# - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.Http2ConnectionErrorException
- ruby-on-rails - 如何设置 puffing-billy 到 Rails 系统测试
- android - 如何更新 recyclerview 显示的数据,这些数据包含在主要活动的片段中?
- c# - AutoMapper 避免嵌套循环