org.hibernate.QueryParameterException: could not locate named parameter [unidadeParametro]
e minha criteria ta assim:
public List<BalancoLinkUmjAux> buscarGraficoUmjLink(String unidadeBusca) {
Session session;
if (em.getDelegate() instanceof EntityManagerImpl) {
EntityManagerImpl entityManagerImpl = (EntityManagerImpl) em.getDelegate();
session = entityManagerImpl.getSession();
} else {
session = (Session) em.getDelegate();
}
String sql;
sql = "select count(OCORRENCIALINK.ID_OCORRENCIALINK) as quantidade, OCORRENCIALINK.ID_UMJ as umj, "
+ "EXTRACT(MONTH FROM OCORRENCIA.DATAEXECUCAO) as mes"
+ "FROM OCORRENCIA "
+ "JOIN OCORRENCIALINK ON OCORRENCIA.ID_OCORRENCIALINK = OCORRENCIALINK.ID_OCORRENCIALINK "
+ "JOIN UMJ ON OCORRENCIALINK.ID_UMJ = UMJ.ID_UMJ "
+ "JOIN UNIDADE ON OCORRENCIA.ID_UNIDADE = UNIDADE.ID_UNIDADE "
+ "WHERE OCORRENCIA.STATUSOCORRENCIA =3 "
+ "AND UNIDADE.UNIDADE = :unidadeParametro"
+ "AND OCORRENCIA.DATAEXECUCAO IS NOT NULL "
+ "AND OCORRENCIALINK.ID_UMJ IS NOT NULL "
+ "GROUP BY OCORRENCIALINK.ID_UMJ ";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("unidadeParametro",unidadeBusca);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
query.setResultTransformer(Transformers.aliasToBean(BalancoLinkUmjAux.class)).list();
List results = query.list();
return results;
}
eu não to conseguindo colocar a variavel unidadeBusca para o parametro unidadeParamentro para colocar no meu SQL, ele fala que não foi possivel localizar.
Já tentei, mais não estou conseguindo alguem pode me ajudar??
Vamos lá, não entendi muito bem o que vocês quis dizer
+ "WHERE OCORRENCIA.STATUSOCORRENCIA =3 "
+ "AND UNIDADE.UNIDADE = :unidadeParametro"
+ "AND OCORRENCIA.DATAEXECUCAO IS NOT NULL "
where faz uma condição me dizendo que o status da minha ocorrencia tem que ser = a 3
a linha do meio eu pega a unidade e a descrição, o nome dessa unidade, que deve ser comparado com o nome da unidadeBusca, unidadeParametro que esta vindo como parametro, e a ultima linha é que a data de execução não pode ser nula, é obrigatório ter alguma data la.
Eu ainda não consegui ver o que esta erro, me ajuda, creio que só estou com esse problema para resolver.
Na sua classe que tem a variavel quantidade, tem o setQuantidade?
Tem que ter lá um public void setQuantidade, ou private, ai basta mapear a variavel com access=“field”