¿Por qué setParameter no establece el parámetro?

Estoy usando el siguiente código para (intentar) consultar una base de datos:

Query query = session.createQuery("from Trace where service = :service");
query.setParameter("service", clientRequest[0]);

Donde clientRequest [0] es de una matriz de cadenas y la variable de servicio es una cadena en mi POJO asignada a un VARCHAR (45) en mi base de datos MySQL.

Cuando ejecuto este código, Hibernate muestra la consulta SQL ejecutada 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=?

Lo que me lleva a creer que el valor de clientRequest [0] no se está configurando correctamente como parámetro.

He comprobado que clientRequest [0] contiene una cadena válida, lo que hace. He intentado otras formas de crear una consulta, pero ninguna de ellas ha funcionado, siempre muestran el servicio como '?', Mientras que si uso lo obvio:

Query query = session.createQuery("from Trace where service = 21");

naturalmente da la respuesta correcta 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

¿Qué podría estar impidiendo que setParamater funcione correctamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta