我想在两个表中进行连接并获取两个表中的所有列,我这样做了:
QueryBuilder<A, Integer> aQb = aDao.queryBuilder();
QueryBuilder<B, Integer> bQb = bDao.queryBuilder();
aQb.join(bQb).prepare();
这相当于:
SELECT 'A'.* FROM A INNER JOIN B WHERE A.id = B.id;
但是我想要:
SELECT * FROM A INNER JOIN B WHERE A.id = B.id;
另一个问题是按 B 的字段排序时,例如:
aQb.orderBy(B.COLUMN, true);
我收到一条错误消息“没有表格 B 列”。
最佳答案
当您使用 QueryBuilder
时,它期望返回 B
对象。它们不能包含 B
中 A
的所有字段。如果那是你的意思,它不会充实外国子领域。该功能尚未跨越 ORMLite 的 lite 障碍.
也不支持对连接表进行排序。您当然可以添加 bQb.orderBy(B.COLUMN, true)
,但我认为这不会满足您的要求。
你当然可以使用 raw-queries为此,虽然它不是最佳的。
关于android - ORMLite 加入查询和排序依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14166046/