Android Room无法从架构识别列名(使用别名作为列名)

时间:2018-11-09 01:24:40

标签: android android-room

我对Android Development以及使用其Room Persistence库相对较新。我当前面临的问题是以下错误:

%Y-%m-%dT%H:%M:%S

但是,我的表架构(该列被其引用)确实包含此名称的列。这是我在Android中定义实体的方式

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

我已经在SQLite Studio中测试了查询,它确实返回了预期的数据。这是在DAO界面Query中编写的查询屏幕快照。我个人认为主要问题是Room可能无法识别我在子查询和列名中使用的别名。我认为正确吗?希望我的屏幕截图对您有所帮助。正如此处许多解决方案所指出的,我确实确保在SQL语句之间添加适当的间距。如果您需要我提供更多信息,我很乐意为您服务!谢谢

1 个答案:

答案 0 :(得分:0)

正如弗拉基米尔·格拉登(Vladimir Gladun)所指出的那样,我要查询的列s_abb的上方设置了@Ignore注释。作为Android关于@Ignore批注的文档,该文档指出:“忽略Room的处理逻辑中的标记元素”: https://developer.android.com/reference/android/arch/persistence/room/Ignore

这基本上意味着Room完全无视它。

但这不是唯一的问题,我的方法期望使用Entity类型的值 而最外层查询中的SELECT语句返回的是String类型值。解决这两个错误解决了我的问题。