我想在一个会议室数据库上执行查询,以产生记录列表,该记录由几个表中的列组成。首先,我有一个子查询,然后与另一个表联接。结果,我只选择了几列。在此查询中,我使用3个表。
编译项目时出现错误消息:
无法弄清楚如何从光标读取此字段。私有org.joda.time.DateTime createdDate; 。
错误指向此DateTime字段。
这是我的界面:
@Dao
interface SomeObjectDao {
@Query (
SELECT a.Id, a.number, b.CreatedDate as createdDate
FROM (SELECT p.*, q.*
FROM tableP AS p, tableQ AS q
WHERE p.userId = q.userId) AS a, table2 AS b
WHERE a.Id = b.someId AND a.position = b.position)
fun getSummary(): List<SomeObjectSummaryDB>
}
和我的SomeObjectSummaryDB自定义类如下:
class SomeObjectSummaryDB(
var Id: String,
var number: Int,
@TypeConverters(DateTimeConverter::class)
var createdDate: DateTime
)
我看过一些示例,它们显示了@Embedded和@ForeignKey批注的使用。在这种情况下,我需要这个吗?如果是这样,有人可以帮助我获取对象列表吗?
我是否需要为子查询和整体结果建立模型? 如果是这样,这些模型将如何?
非常感谢您的帮助!
答案 0 :(得分:0)
解决了问题;这里的问题是我用构造函数创建了类,但是我需要的是带有属性的类。像这样:
class SomeObjectSummaryDB {
var id: String = ""
var number: Int = 0
@TypeConverters(DateTimeConverter::class)
var createdDate: DateTime = DateTime()
}
不是这里不需要@Entity注释。