Pessoal,
Estou com problemas para formular uma HQL. Como faço para setar vários parametros utilizando um objeto da Classe Query?
Segue meu codigo abaixo:
public List<MensagemPergunta> listarPerguntasPorPerguntadorEFiltro(RegiaoAtendimento regiao, Categoria categoria,
UsuarioAE especialista, Classificacao instituicao) {
StringBuilder hql = new StringBuilder();
hql.append("FROM MensagemPergunta ");
Query query = getCurrentSession().createQuery(hql.toString());
if(categoria.getId() != null || especialista.getId() != null){
hql.append("WHERE ");
}
if(categoria.getId() != null){
hql.append("categoria = :categoria");
query = getCurrentSession().createQuery(hql.toString());
query.setParameter("categoria", categoria);
if(especialista.getId() != null || regiao.getId() != null || instituicao.getId() != null) hql.append(" AND ");
}
if(especialista.getId() != null){
hql.append("usuario = :especialista");
query = getCurrentSession().createQuery(hql.toString());
query.setParameter("especialista", especialista);
}
return query.list();
}
O problema está nos setParameter. Se eu setar o segundo parametro, eu perco o primeiro. Queria uma forma de poder especificar quantos parametros eu quiser.
Obrigado.