2
我試圖運行涉及在JDBC自定義變量向一個MySQL 5.0數據庫(休眠4作爲ORM)的查詢:如何在包含變量賦值的jdbc的mysql查詢中轉義冒號(:):
SET @rownum := 0; SELECT rnum FROM (
SELECT (@rownum := @rownum + 1) AS rnum, col_name_a
FROM table_name
WHERE (col_name_b IS NULL OR col_name_b != 'USER') ORDER BY col_name_a) c
WHERE col_name_a = :aValue
第一SET @rownum := 0;
需要重置變量,但結腸(我已經設置了allowMutilQuery = true,如在this question中建議的那樣)。
問題是與以下SELECT
,在那裏我不斷獲取:
org.hibernate.QueryException:空格後的參數前綴是不允許的「:」
是否有辦法在這附近?我應該使用其他方法比
javax.persistence.Query q = EntityManager instance>.createNativequery(String)
和
q.setParameter(<param name>, <param value>)
?
太好了!你知道這是否與ORM無關? – watery
我不知道JPA查詢語言jpql中的任何標準。參數定義冒號+標識符不需要轉義冒號。但是知道,我從未遇到過這個問題。 –
@Joop Eggen在存儲過程的情況下也可以工作,'lp_dyn:LOOP'我在動態存儲過程中必須寫入,但當我用'//'將其轉義時,會出現錯誤 – rd22