Hibernate sum com parametro de outra tabela

Estou tentando pegar a soma dos valores de uma determinada conta, se eu tirar o parametro Object obj ali do método e deixar comentando como está abaixo ele pega a soma de todos os valores de acordo com a operação que eu informar. O valor e a operação estão na tabela lancamento, porém a conta é de outra tabela, como eu poderia pegar a soma dos valores de acordo com a conta selecionada?

    public double calculaValores(Class classe, String operacao, Object obj) {
        Criteria criteria = this.getSession().createCriteria(classe);
        criteria.setProjection(Projections.sum("valor"));
        criteria.add(Restrictions.eq("operacao", operacao));
//        criteria.add(Restrictions.eq("conta", obj));
        return (Double) criteria.uniqueResult();
    }

Obrigado pela ajuda!

Talvez isso ajude, a consulta que estou tentando fazer com o hibernate é essa:

SELECT SUM(Valor) AS debitos
FROM Lancamento, Conta
WHERE Lancamento.Conta_ID = Conta.ID
AND Operacao = 'D' AND Lancamento.Conta_ID = 1

Tem como?

Consegui fazer funcionar assim:

    public double calculaValores(Class classe, String operacao, Integer contaID) {
        SQLQuery q = getSession().createSQLQuery("SELECT SUM(Valor) AS debitos " +
            "FROM Lancamento, Conta " +
            "WHERE Lancamento.Conta_ID = Conta.ID " +
            "AND Operacao = '" + operacao + "' AND " +
            "Lancamento.Conta_ID = " + contaID);
        if (q.uniqueResult() == null) {
            return 0;
        } else {
            return (Double) q.uniqueResult();    
        }
    }

mas não gostaria de usar SQL, tem como fazer isso com Criteria?

Obrigado

[quote=fpmxPJ]Consegui fazer funcionar assim:

    public double calculaValores(Class classe, String operacao, Integer contaID) {
        SQLQuery q = getSession().createSQLQuery("SELECT SUM(Valor) AS debitos " +
            "FROM Lancamento, Conta " +
            "WHERE Lancamento.Conta_ID = Conta.ID " +
            "AND Operacao = '" + operacao + "' AND " +
            "Lancamento.Conta_ID = " + contaID);
        if (q.uniqueResult() == null) {
            return 0;
        } else {
            return (Double) q.uniqueResult();    
        }
    }

mas não gostaria de usar SQL, tem como fazer isso com Criteria?

Obrigado[/quote]

Amigo, preciso de uma ajuda sua pra fazer um método que me faça esse cálculo:

é pra fazer um movimento financeiro, onde cada lançamento inserido será computado no movimento dessa data.

Pode ser em criteria, ou sql, qq forma ajuda.

Agradeço;

Eae pessoal, alguem??