我有三个表,我必须在一个 Android 中呈现ListView
。为了获取数据,我使用 SQLUNION
运算符将所有三个表“合并”在一起,以便在我的 ViewBinder 中,我可以使每个时间线项目看起来不同。
这些项目需要按时间顺序排序。这三个表没有共同的基类。
这是我想到的SQL:
SELECT * FROM (
SELECT id, startTime as time, username, comment, "CustomerInteraction" FROM CustomerInteraction
UNION
SELECT id, date as time, "" as username, "" as comment, "Sale" FROM Sale
UNION
SELECT id, claimDate as time, username, comment, "TravelClaim" FROM TravelClaim)
ORDER BY time DESC LIMIT 100
如何在 ORMLite 中表达上述查询?
我知道我可以使用Dao.executeRaw
,但我不想一次性填充我的整个列表。我宁愿使用这个技巧从 ORMLite 获取底层光标,然后将其传递给我的适配器。(延迟加载,使长列表的初始显示速度更快。)
有没有办法我可以做类似的事情Dao.getPreparedQueryFromRaw(String statement)
?还是更好QueryBuilder.union(QueryBuilder qb)
?