fpmxPJ
Dezembro 4, 2006, 11:36pm
#1
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!
fpmxPJ
Dezembro 5, 2006, 7:46pm
#2
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?
fpmxPJ
Dezembro 13, 2006, 11:24pm
#3
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;