Eu preciso fazer uma listagem onde preciso apenas de 3 campos de uma tabela.
Tentei fazer assim.
Meu dao.
public List<ProdutoEmpresa> buscamenorpreco() {
return (List<ProdutoEmpresa>) session.createSQLQuery("select cod_empresa, cod_produto, preco from ProdutoEmpresa where ativo=1 AND cod_produto=8");
}
Meu controller.
//Lista todos - teste@Get("/produtoEmpresa2")publicList<ProdutoEmpresa>lista2(){returndao.buscamenorpreco();}
Esse código está errado: return (List) session.createSQLQuery(“select cod_empresa, cod_produto, preco from ProdutoEmpresa where ativo=1 AND cod_produto=8”);
Você não executou a query…
Rodrigo_Sasaki
Cara, no seu DAO você está invocando createSQLQuery e fazendo cast para List… acho que não é isso que você queria fazer, é ?
101574
Eu coloquei no final do dao
.list();
public List<ProdutoEmpresa> buscamenorpreco() {
return (List<ProdutoEmpresa>) session.createSQLQuery("select cod_empresa, cod_produto, preco from ProdutoEmpresa where ativo=1 AND cod_produto=8").list();
}
Funciou, mas ficou em branco a jsp.
E quando faço a consulta no braço no banco, ta funcionando.
Olha minha jsp como ficou.
Quando eu tiro o Restrictions.like.
Ele lista normalmente. Pq eu não consigo utiiza-lo. Pois, utilizando eu consigo fazer a minha consulta pelo próprio Hibernate, não precisaria do SQL.
Tem como me ajudar?
Vlws manos.
Lucas_Cavalcanti
explicando o que está acontecendo: qdo vc usa uma SQLQuery ele nao vai te retornar uma List, vai ser sempre List<Object[]> (mas da pra transformar em algum objeto melhor)
o erro que ta dando na criteria eh pq vc esqueceu de chamar o metodo list() no final.
101574
Valeu pela ajuda, mas o erro sumiu.
E os dados não aparecem.
Olha como ficou.
public List<ProdutoEmpresa> listaTudo() {
List resultado = this.session.createCriteria(ProdutoEmpresa.class).list();
resultado.add( Restrictions.like("cod_produto", "8"));
return ((Criteria) resultado).list();
}