QueryDsl:选择符合条件的行数

时间:2015-07-07 09:22:03

标签: java count querydsl

我在db中有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,这是错误的

我做错了什么? 我该如何下载符合我标准的行数?

1 个答案:

答案 0 :(得分:0)

我认为你没有孤立地执行查询。可能你刚刚从第一个查询中重用了查询对象并继续,你得到了一个交叉连接,得到了2 * 2 = 4个结果。