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