Olá pessoa,
Estou com uma dúvida, onde trabalho utilizamos JavaSE, e por ser um sistemas de PDV tem algumas query bem complexa, não utilizamos JPA+Hibernate, e agora estou migrando pro spring e preciso executar uma query para retornar um resultado do banco de dados.
O problema é que o objeto que quero popular os dados ele não é uma entity no banco de dados.
Segue exemplo meu para ter uma ideia melhor da situação.
Nesse sql estou fazendo via JDBC,um sql puro e retornando o dado num resultset,mas sei que
ísso não é a melhor maneira,dei uma olhada em JPQL mas ainda sim não sei se da pra adaptar a minha situação.
Obs:esse código é meu e pessoal, não da empresa que trabalho.
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
List<DailyClosing> list = new ArrayList<DailyClosing>();
DailyClosing dailyClosing = null;
try {
conn = ConnectionJdbc.getConexao();
String sql = " SELECT "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 1 AND v.id_caixa = #ID) AS dinheiro, "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 2 AND v.id_caixa = #ID) AS cartao_credito, "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 3 AND v.id_caixa = #ID) AS cartao_debito, "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 4 AND v.id_caixa = #ID) AS brinde, "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 5 AND v.id_caixa = #ID) AS pix, "
+" (SELECT SUM(v.total) AS v FROM order v WHERE v.forma_pagamento = 6 AND v.id_caixa = #ID) AS outros "
+" FROM comanda c "
+" LIMIT 1 ";
sql = sql.replaceAll("#ID", String.valueOf(id));
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
if(rs.next()) {
…populo os dados como preciso…
}