Galera, seguinte…Preciso fazer 2 SELECT no BD com parametros: 1 select por codigo e o outro por nome.
estou tentando fazer assim:
//aqui tento fazer a consulta, mas não me retorna nada...A tabela esta populada de informações.publicvoidconsultaPerfilPorCodigo(){DefaultTableModeltabela=(DefaultTableModel)gridPerfil.getModel();tabela.setNumRows(0);Sessionsessao=newRetornaSessaoHibernate().hibernateSession();sessao.beginTransaction();List<Yperfil>perfis=(List<Yperfil>)sessao.createSQLQuery("from Yperfil where id = "+Long.parseLong(codPerfil.getText())).list();for(Yperfilperfil:perfis){tabela.addRow(newObject[]{newFormataCodigos().retornaCodigoFormatado(perfil.getId()),perfil.getPerfil(),perfil.getObservacao(),});}}
Não estou conseguindo fazer a consulta, como seria pra fazer isso ???
E outra pergunta é como fazer isso sem usar concatenação ???
//esta funcionandoDefaultTableModeltabela=(DefaultTableModel)gridPerfil.getModel();tabela.setNumRows(0);Sessionsessao=newRetornaSessaoHibernate().hibernateSession();sessao.beginTransaction();List<Yperfil>perfis=(List<Yperfil>)sessao.createQuery("from Yperfil as perfil where perfil.id = "+Long.parseLong(codPerfil.getText())).list();for(Yperfilperfil:perfis){tabela.addRow(newObject[]{newFormataCodigos().retornaCodigoFormatado(perfil.getId()),perfil.getPerfil(),perfil.getObservacao(),});}
Como eu faço isso sem usar concatenação e sem ter que criar uma classe para retorno ??? Eu vi um esquema de usar createQuery com parameters, porém naum consegui fazer.
publicvoidconsultaPorDescricaoPerfil(){DefaultTableModeltabela=(DefaultTableModel)gridPerfil.getModel();tabela.setNumRows(0);Sessionsessao=newRetornaSessaoHibernate().hibernateSession();sessao.beginTransaction();Queryquery=sessao.createQuery("from Yperfil as p where p.perfil like :descricao");query.setParameter("descricao","%"+descPerfil.getText()+"%");List<Yperfil>perfis=query.list();for(Yperfilperfil:perfis){tabela.addRow(newObject[]{newFormataCodigos().retornaCodigoFormatado(perfil.getId()),perfil.getPerfil(),perfil.getObservacao(),});}}
100% FUNCIONAL…KKK !!!
t+++ e vlw.
maior_abandonado
o método createQuery retorna um objeto Query, ao qual você está chamando o método list. Antes de chamar esse método list você pode pegar esse objeto Query e usar algum dos setters dele (setString, setInt, etc) para setar parâmetros, semelhante ao PreparedStatement do jdbc. Os parâmetros ao invés de “?” você pode usar “:nome”, e ai no setter você pode usar o indice do parâmetro ou o nome.
fernandopaiva
Opa maior_abandonado…Obrigado, eu ja havia resolvido, mas acho q o tempo de eu responder q havia resolvido foi o tempo de vc postar…kkk !!!
Mas blz, obrigado msm assim.