У меня 2 записи в db. Где я буду делать это:QueryDsl: Выберите количество строк, которое соответствует критериям
QLoginRegistryEntry loginregistryentry = QLoginRegistryEntry.loginRegistryEntry;
JPAQuery query = new JPAQuery(JPA.em());
List<LoginRegistryEntry> result;
result = query.from(loginregistryentry)
.where(loginregistryentry.inDate.startsWith(yearAndMonth))
.list(loginregistryentry);
System.out.println(result.size());
Он вернется 2, который является правильным
Когда я делаю это:
QLoginRegistryEntry loginregistryentry2 = new QLoginRegistryEntry("a");
long count = query.from(loginregistryentry2).count();
System.out.println(count);
Это вернет 4, что неправильно
Что я делаю неправильно? Как загрузить количество строк, отвечающее моим критериям?
Вам не хватает предложение where() в вашем втором запросе? –
Я думаю, что это не имеет значения. Без 'where' части statment он должен просто получить все строки. Проблема в том, что у меня есть ** две записи ** в этой конкретной таблице. Но 'count()' дважды возвращает это. Первый запрос, который возвращает правильный результат 2, вообще не выполняет 'count()'. Он забирает все записи, помещает их в список, а затем подсчитывает 'size()' этого списка. – masterdany88