Por que setParameter não define o parâmetro?
Eu estou usando o seguinte código para (tentativa de) consultar um banco de dados:
Query query = session.createQuery("from Trace where service = :service");
query.setParameter("service", clientRequest[0]);
Onde clientRequest [0] é de uma matriz de Strings e a variável de serviço é uma String no meu POJO mapeado para um VARCHAR (45) no meu banco de dados MySQL.
Quando executo este código, o Hibernate mostra a consulta SQL executada como:
Hibernate: select trace0_.traceId as traceId0_, trace0_.service as service0_, trace0_.longitude as longitude0_, trace0_.latitude as latitude0_, trace0_.timestamp as timestamp0_ from trace trace0_ where trace0_.service=?
O que me leva a acreditar que o valor de clientRequest [0] não está sendo definido corretamente como um parâmetro.
Eu verifiquei que clientRequest [0] contém uma String válida, o que faz. Eu tentei outras maneiras de criar uma consulta, mas nenhuma delas funcionou, elas sempre mostram o serviço como '?', Enquanto, se eu usar o óbvio:
Query query = session.createQuery("from Trace where service = 21");
dá naturalmente a resposta correta de
Hibernate: select trace0_.traceId as traceId0_, trace0_.service as service0_, trace0_.longitude as longitude0_, trace0_.latitude as latitude0_, trace0_.timestamp as timestamp0_ from trace trace0_ where trace0_.service=21
O que pode estar impedindo o setParamater de funcionar corretamente?