有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在计算实体时限制查询结果

我想数一数Employees的数量,但我只想知道是否有50个或更多Employees。如果我执行Count-操作(见下文),并将Range设置为0->;51,该查询将只计算到51,还是仍将计算所有Employees?我想知道这一点,这样每次运行查询时,查询不会将1000名员工全部计算在内(这对性能不利)

Query query = pm.newQuery("SELECT count(p) FROM Employees p");
query.setRange(0, 51);
long count = (long) query.execute();
if(count >= skipThreshold)
{
   acceptedEmployees.add(mode);
}

谢谢!


共 (2) 个答案

  1. # 1 楼答案

    如果执行SELECT count(p) FROM Employees p,则将返回一行和一个值。。。伯爵,因为你要伯爵。范围在那个查询中是没有意义的。当查询返回多行(对象)时,可以使用range

  2. # 2 楼答案

    了解您至少有50名员工的最佳方法是使用以下查询/计数语句

    query = db.Query(Employee)
    if query.count(50) == 50 :
        # Means, you have at least 50 or more Employees in your Datastore
    

    快乐编码