2
我使用下面的代碼(嘗試)查詢數據庫:爲什麼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正常工作?
太棒了。在我確認之前,我會檢查一下並做一些測試以確認。非常感謝你。 –
剛剛確認參數正確添加後,我無法在一分鐘內記錄日誌,但您的答案完全正確。再次感謝! –