Как использовать 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.