Play Framework / ebeans上的聚合功能

时间:2015-10-07 16:11:57

标签: playframework ebean

我希望获得实体列表中字段的总和。

@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

我不知道我是否可以建立类似的查询或其他内容。

谢谢!

1 个答案:

答案 0 :(得分:0)

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();