Sto usando Hibernate. Ho scritto alcune query native perché ho bisogno di usare la dichiarazione di selezione secondaria.Come posso utilizzare l'operatore di assegnazione MySQL (: =) nella query nativa di ibernazione?
query è simile al seguente:
SELECT sub.rownum FROM
(SELECT k.`news_master_id` AS id, @row := @row + 1 AS rownum
FROM keyword_news_list k
JOIN (SELECT @row := 0) r
WHERE k.`keyword_news_id` = :kid
ORDER BY k.`news_master_id` ASC) AS sub
WHERE sub.id = :nid
Quando eseguo questa query come questa:
sessionFactory.getCurrentSession()
.createSQLQuery(query)
.setParameter("kid", kid)
.setParameter("nid", nid)
.uniqueResult();
Questa eccezione viene fuori:
org.hibernate.QueryException: Space is not allowed after parameter prefix ':' ....
Questo potrebbe a causa di :=
dell'operatore. Ho trovato alcuni Hibernate issue su questo. Questo problema è ancora aperto. Non c'è alcuna soluzione per questo problema?
C'è qualche cosa che può aiutarti da qui? http://dev.mysql.com/doc/refman/5.0/en/assignment-operators.html#operator_assign-value – ManuPK
@ManuPK Grazie, ma non è stato d'aiuto. Penso che non ci sia una soluzione per la mia domanda. Ho trovato una domanda simile con la mia http://stackoverflow.com/questions/2712240/how-to-use-mysql-variables-with-hibernate ma non c'è una buona soluzione. –