Dlaczego setParameter nie ustawia parametru?

Używam następującego kodu do (próby) zapytania do bazy danych:

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

Gdzie clientRequest [0] pochodzi z tablicy łańcuchów, a zmienna usługi jest ciągiem w moim POJO odwzorowanym na VARCHAR (45) w mojej bazie danych MySQL.

Po uruchomieniu tego kodu Hibernate pokazuje wykonane zapytanie SQL jako:

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

Co prowadzi mnie do przekonania, że ​​wartość clientRequest [0] nie jest poprawnie ustawiana jako parametr.

Sprawdziłem, że clientRequest [0] zawiera poprawny ciąg, który to robi. Wypróbowałem inne sposoby tworzenia zapytania, ale żadne z nich nie zadziałało, zawsze wyświetlają usługę jako „?”, A jeśli używam oczywistego:

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

naturalnie daje prawidłową odpowiedź

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

Co może uniemożliwiać poprawne działanie setParamater?

questionAnswers(1)

yourAnswerToTheQuestion