我目前正在使用greenDA作为Android应用程序的ORM。我在尝试执行GROUPBY子句时遇到了一个问题。
greenDAO没有用于执行groupby子句的API /帮助器方法,所以我决定使用可用于AbstractDAO类的query()
或queryRaw()
方法,在那里我可以传递有效的SQL查询。但是,这两个方法都返回一个java.util.List,让我感到困惑的是,如何在结果中获取列别名的值?
例如,
SELECT COUNT(ID) AS NUMOFRECORDS, NAME FROM PERSONS GROUP BY AGE
我的实体将拥有NAME和AGE字段,但我创建了一个列别名NUMOFRECORDS,它不是实体的一部分。
感谢您的帮助!
答案 0 :(得分:6)
这是您的问题的替代解决方案: 包括ORDER BY insize of Where。
例如:
List<Taxi> list = daoSession.getDaoTaxi().queryBuilder().where(new WhereCondition.StringCondition("1 GROUP BY cant_aciento")).list();
答案 1 :(得分:1)
我遇到了类似的问题。似乎greenDao不支持GROUP BY查询,并且根据他们所说的here,它不会在未来发生变化:
GROUP BY是SQL-ish,所以坚持使用SQL。 greenDAO是关于实体的,其中GROUP BY不受支持。