Consulta HQL com where

Pessoal estou com dificuldades para montar uma consulta HQL com where… quero abri um JInternalFrame filtrado passando o valor de filtro o que seleciono no meu jTable… mais não estou conseguindo montar a consulta …

a minha consulta é esta

Query lista = sessao.createQuery("from "+ classe);

O meu código todo é este

InterfaceDaoGenerica

package Dao;

import java.util.List;
import org.hibernate.Query;

public interface InterfaceDaoGenerica
{

    public void inserir();
    public void alterar();
    public void excluir();
    public List listar(String classe);
    public Query listarCriterio(String classe);
}

MEU DAO GENERICO E ESTE…

public class DaoGenerico<Obj> implements InterfaceDaoGenerica{

    private final Session sessao;
    Transaction tx_trans = null;
    private Obj objeto;
    public DaoGenerico(Obj parametro)
    {
       this.sessao = HibernateUtil.getSessao();
       this.objeto = parametro ;
    }
    
    public void inserir() 
    {
        try {

            tx_trans = sessao.beginTransaction();
            sessao.save(objeto);
            tx_trans.commit();

        } catch (Exception erro)
        {
            JOptionPane.showMessageDialog(null, "Erro: "+erro );
            tx_trans.rollback();
        }
 
    }

    public void alterar()
    {
        try {

            tx_trans = sessao.beginTransaction();
            sessao.update(objeto);
            tx_trans.commit();

        } catch (Exception erro) {

            JOptionPane.showMessageDialog(null, "Erro:  "+erro);
            tx_trans.rollback();
        }
    }

    public void excluir() {

        try {

            tx_trans = sessao.beginTransaction();
            sessao.delete(objeto);
            tx_trans.commit();

        } catch (Exception e)
        {
            JOptionPane.showMessageDialog(null,"Erro:  "+e);
            tx_trans.commit();
        }
       
    }

  @Override
  public List listar(String classe)
  {

      List lista = sessao.createQuery("from "+classe).list();

      return lista;
  }

  @Override
  public Query listarCriterio(String classe)
  {
      Query lista = sessao.createQuery("from "+ classe);
      return lista;
  }

}

MEU METODO PARA CARREGAR OS DADOS E ESTE

public void  abrirCampos()
{
     try {

            Cargo cargo = new Cargo();
            DaoGenerico obj_cargo = new DaoGenerico(cargo);

            List<Bens.Cargo> list_cargo = new ArrayList();
            list_cargo = obj_cargo.listarCriterio("Cargo").list();

            int tamanho_lista = list_cargo.size();
        for (int i = 0; i < tamanho_lista;i++)
        {
            cargo = list_cargo.get(i);
            jTextField1.setText(""+cargo.getIdcargo());
            jTextField2.setText(cargo.getDesccargo());
         }
        } catch (Exception erro)
        {
            JOptionPane.showMessageDialog(null, "Erro:  "+erro);
        }
}

Já tentei fazer assim

Query lista = sessao.createQuery("from "+ classe + "where idcargo="segundo criterio); 

mais sem exito.

Pesso desculpas pela mensagem inicial que não estava bem formatada… sou novo no forum e aguardo a ajuda de vcs…

De já obrigado.

Já te falaram que Java é case sensite ?? lower case please…

e coloca o seu codigo entre as tags [code]

Eu sei que o java é case sensite… vc poderia me dar um exemplo de como ficaria minha consulta… onde eu coloca as tegs…[]…

de já agradeço sua resposta e espero muito um exemplo seu…

obrigado…

luis

[quote=ediclebb]Eu sei que o java é case sensite… vc poderia me dar um exemplo de como ficaria minha consulta… onde eu coloca as tegs…[]…

de já agradeço sua resposta e espero muito um exemplo seu…

obrigado…

luis[/quote]

repetindo, java é case sensitive e o GUJ também é… não poste em CAPS LOCK isso prejudica a leitura… coloque seu código entre as tags [code] para facilitar a leitura… eu nem li o seu post, posi ele esta mau formatado…

Obrigado pela dica… agora estar formatado… aguardo a ajuda de todos

Luís

posta a Exception, que vai ajudar a debugar o erro…

de toda forma, assim é + simples

[code]
@Override
public List listar(Class classe)
{
return sessao.createCriteria(classe).list();
}

@Override
public Criteria listarCriterio(String classe)
{
return sessao.createCriteria(classe);
} [/code]

e assim vc pode o segundo criteria assim

para montar um query HQL para propriedade vc deve fazer algo asism

[code]
String query = “from %s c where c.campo = :valor”;

public List listarCriterio(String classe,Object valor) {
return sessao.createQuery(String.format(query,classe)).setParameter(“valor”,valor).list();
}[/code]

meu codigo ficou assim

package Dao;

import java.util.List;
import org.hibernate.Query;

public interface InterfaceDaoGenerica
{

    public void inserir();
    public void alterar();
    public void excluir();
    public List listar(String classe);
    public List listarCriterio(String classe, Object valor);
    
}
public void  abrirCampos()
{
     try {

            Cargo cargo = new Cargo();
            DaoGenerico obj_cargo = new DaoGenerico(cargo);
            Object cod = 1;
            List&lt;Bens.Cargo&gt; list_cargo = new ArrayList();
            list_cargo = obj_cargo.listarCriterio(&quot;Cargo&quot;,cod);

            int tamanho_lista = list_cargo.size();
        for (int i = 0; i &lt; tamanho_lista;i++)
        {
            cargo = list_cargo.get(i);
            jTextField1.setText(&quot;&quot;+cargo.getIdcargo());
            jTextField2.setText(cargo.getDesccargo());
         }
        } catch (Exception erro)
        {
            JOptionPane.showMessageDialog(null, &quot;Erro:  &quot;+erro);
        }
}
@Override
  public List listar(String classe)
  {

      List lista = sessao.createQuery(&quot;from &quot;+classe).list();

      return lista;
  }

  String query = &quot;from %s c where c.campo = :valor&quot;;

  @Override
  public List listarCriterio(String classe, Object valor)
  {
       return sessao.createQuery(String.format(query,classe)).setParameter(&quot;valor&quot;,valor).list();
  }

Mensagem de erro

Erro:org.hibernate.QueryException:could not resolve property: campo of:Bens.Cargo[from Bens.Cargo c where c.campo=:valor]

sim, sim… isso foi só um exemplo… vc deveria trocar c.campo por um campo do seu objeto

Lavieri muito obrigado… isso era realmente o que queria… muito obrigado mesmo e uma boa semana…

Luis