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?