Почему setParameter не устанавливает параметр?

Я использую следующий код для (попытки) запроса базы данных:

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

Где clientRequest [0] из массива строк, а служебная переменная - это строка в моем POJO, сопоставленная с VARCHAR (45) в моей базе данных MySQL.

Когда я запускаю этот код, Hibernate показывает выполненный SQL-запрос как:

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=?

Что приводит меня к мысли, что значение clientRequest [0] не устанавливается правильно в качестве параметра.

Я проверил, что clientRequest [0] содержит допустимую строку, что он и делает. Я пробовал другие способы создания запроса, но ни один из них не сработал, они всегда показывают службу как «?», Хотя, если я использую очевидное:

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

это естественно дает правильный ответ

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

Что может помешать правильной работе setParamater?

Ответы на вопрос(1)

Ваш ответ на вопрос