2015-01-12 52 views
6

我目前使用greenDAO作爲我的Android應用程序的ORM。嘗試執行GROUPBY子句時遇到問題。 greenDAO沒有執行groupby子句的API/helper方法,所以我決定使用可用於AbstractDAO類的query()queryRaw()方法,我可以在其中傳遞有效的SQL查詢。但是,這兩個方法都返回一個java.util.List,所以我感到困惑的是,如何獲得結果中的列別名值? 例如,GreenDAO groupby子句

SELECT COUNT(ID) AS NUMOFRECORDS, NAME FROM PERSONS GROUP BY AGE 

我的實體將有姓名和年齡字段,但我創建了一個列別名NUMOFRECORDS,這不是實體的一部分。

感謝您的幫助!

回答

1

我被困在一個類似的問題。看來,greenDao不支持GROUP BY querys,它將在未來,根據他們所說here不會改變:

GROUP BY是SQL十歲上下,所以堅持到SQL。 greenDAO是關於GROUP BY不受支持的實體。

5

這是您的問題的替代解決方案: 包括ORDER BY insize of Where。

例:

List<Taxi> list = daoSession.getDaoTaxi().queryBuilder().where(new WhereCondition.StringCondition("1 GROUP BY cant_aciento")).list();

+0

這是棘手,但工作可靠 – AlexeyVMP