Play Framework / ebeans 上的聚合函数

Aggregation function on Play Framework / ebeans

我想获取实体列表中某个字段的总和。

@Entity
public class A{
    @Id
    private Long id
    private int countfield;

    public static Finder<Long, A> find = new Finder<Long,A>(A.class);
}

例如:

public static int findCountFieldSum(int stuff){
    return find.where().lt("id",stuff).findSum("countfield");
}

或类似的查询:

SELECT SUM(countfield) WHERE ... STUFF

我不知道我是否可以构建类似的查询或其他东西。

谢谢!

RawSql 是要走的路。应该是这样的:

Query<Integer> query = Ebean.createQuery(Integer.class);

String sql = "SELECT SUM(countField) FROM a WHERE id = :id";
query.setRawSql(RawSqlBuilder.parse(sql).create());
query.setParameter("id", id);
Integer count = query.findUnique();