【发布时间】:2015-07-07 09:22:03
【问题描述】:
我在数据库中有 2 条记录。 我将在哪里执行此操作:
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部分声明,它应该只获取所有行。问题是我在那个特定的表中有 两条记录。但是count()会返回两倍。第一个返回正确结果的查询 2,根本不做count()。它对所有记录进行门控,将它们放入列表中,然后计算该列表中的size()。