我得到了非常典型的問題。我這樣動態生成的查詢是這樣的...Hibernate session.createQuery錯誤,而用單引號替換方法
UPDATE Templates t SET t.TEMPLATE_DATA = replace(t.TEMPLATE_DATA, 'Test\'s Test', 'Kent"s Test'), t.TEMPLATE_DATA = replace(t.TEMPLATE_DATA, 'Test"s Test', 'Kent"s Test'), UPDATE_DATE = NOW() where PRACTICE_ID = 1 AND CATEGORY_ID IN (1)
這工作完美時,我明確地在DB啓動此查詢。但通過使用hibernate的session.createQuery( - 我的查詢 - )如果thwows錯誤QueryTranslatorException。
Database : Mysql 5.3
有沒有人遇到過這個問題? 在此先感謝。
哦,你們倆都是對的。謝謝。 但我真的想明白兩者有什麼區別?順便說一句,它是HQL或簡單的SQL都在同一個後端MySql上觸發。即使這很重要嗎? – Ketan 2012-08-13 07:06:41
是的!因爲HQL和SQL有不同的語法。 HQL是在類級別和SQL是表級別 – 2012-08-13 07:11:13
我編輯我unswer。您可以在這裏找到HQL和SQL之間差異的簡要說明。 – dimas 2012-08-13 07:15:34