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();
我想获取实体列表中某个字段的总和。
@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();