Somatório de um campo da tabela

Olá bom dia. Preciso fazer o somatório do campo “custo” de uma tabela. O método listatudo abaixo lista os campos com valor true, só que, além disto, preciso pegar o somatório do campo “custo” desta mesma tabela. Podem me ajudar?

public class Dao<T> { protected Session getSession() { return session; } private final Session session; private final Class classe; Dao(Session session, Class classe) { this.session = session; this.classe = classe; } public void adiciona(T u) { this.session.save(u); } public void remove (T u) { this.session.delete(u); } public void atualiza (T u) { this.session.merge(u); } //public List<T> listaTudo() { //return this.session.createCriteria(this.classe).list(); //} public List<T> listaTudo() { return this.session.createQuery("from modelo.soft where padrao=true").list(); preciso exibir o valor do somatório do campo custo nesta condição } public T listaPreco(Long id) { return (T) session.load(this.classe, id); } public T procura(Long id) { return (T) session.load(this.classe, id); } }

já tentou com SUM?

Na sua HQL

SELECT SUM(custo)

Você pode mapear um atributo com a opção FORMULA do Hibernate. Assim sempre quando fizer uma consulta o resultado da fórmula é associado ao campo.

Exemplo:

<property name="total" type="double"> <formula> (SELECT COALESCE(SUM(valor), 0) WHERE 1=1) </formula> </property>

O ruim é que a fórmula é executada sempre.

Você pode mapear um atributo com a opção FORMULA do Hibernate. Assim sempre quando fizer uma consulta o resultado da fórmula é associado ao campo.

Exemplo:

<property name="total" type="double"> <formula> (SELECT COALESCE(SUM(valor), 0) WHERE 1=1) </formula> </property>

O ruim é que a fórmula é executada sempre.