/ / Funkcja Aggregation w Play Framework / ebeans - playframework, ebean

Funkcja agregacji w Play Framework / ebeans - playframework, ebean

Chcę uzyskać sumę pola na liście podmiotów.

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

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

Na przykład:

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

Lub podobnie, z takim zapytaniem:

SELECT SUM(countfield) WHERE ... STUFF

Nie wiem, czy mogę zbudować podobne zapytanie lub coś takiego.

Dzięki!

Odpowiedzi:

0 dla odpowiedzi № 1

RawSql to jest droga. Powinno być coś takiego:

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