Duvida hibernate

2 respostas
F

meu metodo para pegar os acervos no jsp…

String cod = "";
cod = request.getParameter("id");
Acervo acervo = new Acervo();
acervo.setCod(Integer.parseInt(cod));
AcervoFacade facade = new AcervoFacade();
String nome = "";
acervo = facade.acervoPorCod(acervo);
nome = acervo.getDescricao();

e o codigo que vai no banco

public Acervo acervoPorCod(Acervo acervo) {
       
        Session session = hibernate.HibernateUtil.currentSession();
        acervo = (Acervo) session.createQuery(
                " select acervo " +
                " from  " +
                " Acervo as acervo " +
                "  where  " +
                " acervo.cod = ? ").setInteger(0,acervo.getCod());
        return acervo;
    }

ele nao ta passando o paramentro… continua “?” valeu!!!

2 Respostas

cleiton_herrmann

olá fhsantiago, blz?

cara tente fazer o seguinte, dentro do seu codigo sql, ao invés de colocar o ponto de interrogacao, coloque uma variavel, e depois sete o valor dela.
Pra falar a verdade eu nao vi em nenhum lugar até agora um exemplo usando o “?”.

acervo = (Acervo) session.createQuery(

" select acervo " +

" from  " +

" Acervo as acervo " +

"  where  " +

" acervo.cod = :codigo ").setInteger(codigo,acervo.getCod());

return acervo;

vou deixar um exemplo de um codigo que fiz para um trabalho na facul, só que eu retorno um objeto List com os objetos retornados na consulta

===============================================

private void jbConsultarActionPerformed(java.awt.event.ActionEvent evt){

try {

CursoDAO dao = new CursoDAO();

List consulta = dao.consultaHql();

Iterator it = consulta.iterator();
for (int i = 0;it.hasNext(); i++) {
           Vector linha = new Vector();
            Curso elemento = (Curso)it.next();
            linha.add(elemento.getId());
            linha.add(elemento.getNome());
            linha.add(elemento.getDescricao());
            modelo.addRow(linha);
        }
        
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

================================================

//exemplo utilizando a classe query com comandos HQL

public List consultaHql(){

Session session = factory.openSession();

Transaction trx = session.beginTransaction();
Query select = session.createQuery("from Curso as crs where           crs.id = :nomeCurso");
  select.setInteger("nomeCurso", 2);
  List objetos = select.list();
    
  System.out.println(objetos);
  trx.commit();
  session.close();
  return objetos;

}

qualquer duvida pergunta ai! valeu

Mauricio_Linhares

Por mais estranho que pareça, em JDBC a contagem começa pelo 1 e não pelo 0.

Criado 29 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 2
Participantes 3