2015-01-12 14 views
6

私は現在AndroidアプリケーションのORMとしてgreenDAOを使用しています。私はGROUPBY句を実行しようとすると問題に遭遇しました。 greenDAOにはgroupby句を実行するためのAPI /ヘルパーメソッドがないため、有効なSQLクエリを渡すことができるAbstractDAOクラスにはquery()またはqueryRaw()メソッドを使用することに決めました。しかし、これらのメソッドはどちらもjava.util.Listを返します。その結果、カラムエイリアスの値を取得するにはどうすればいいですか? 例えば、GreenDAO groupby句

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

私のエンティティは、NAMEとAGEのフィールドを持つことになりますが、私は、エンティティの一部ではない列の別名のNUMOFRECORDSを、作成しました。

ありがとうございました!

答えて

1

私は同様の問題を抱えています。

GROUP BYをSQLっぽいので、SQLに固執:greenDaoがquerys、GROUP BYをサポートしていませんし、それは彼らがhereを言ったによると、将来的に変更されませんようです。 greenDAOはエンティティに関するもので、GROUP BYはサポートされていません。

5

これはあなたの質問の代替ソリューションです: WhereのORDER BY insizeを含めます。

例:

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

+0

それはトリッキーだが、作品性と信頼性 – AlexeyVMP