Как использовать GROUP BY в GreenDao

Я нашел несколько вопросов, связанных с этой проблемой в SO, но мне это сильно не помогло. Я хочу построить запрос в Android с использованием библиотеки GreenDao, запрос должен собирать все строки, содержащие определенный номер телефона, в порядке убывания даты и времени, и я также хочу сгруппируйте их по имени группы. Мой запрос:

   List<activity> activities = activityDao.queryBuilder().where(Properties.Contact_number.eq(phonenumber)).orderDesc(Properties.Date_time).build().list();

Как включить GROUP BY в запрос выше, чтобы сгруппировать строки по group_name(У меня есть group_name как столбец в таблице)?

Я не нашел ни одного метода GROUP BY в GreenDao, не уверен, что я прав.

1 ответ

Решение

GROUP BY не поддерживается GreenDao.
Вы можете использовать этот трюк:

where(new WhereCondition.StringCondition(Properties.Contact_number.eq(phonenumber) + "GROUP BY group_name")).orderDesc(Properties.Date_time).build().list();

Это позволит вам создать предложение where с помощью String.

Другие вопросы по тегам