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?

questionAnswers(1)

yourAnswerToTheQuestion