Estoy usando Hibernate. Escribí alguna consulta nativa porque necesito usar una declaración secundaria.¿Cómo puedo usar el operador de asignación de MySQL (: =) en la consulta nativa de hibernación?
de consulta es el siguiente:
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
Cuando ejecuto esta consulta como esta:
sessionFactory.getCurrentSession()
.createSQLQuery(query)
.setParameter("kid", kid)
.setParameter("nid", nid)
.uniqueResult();
Esta excepción sale:
org.hibernate.QueryException: Space is not allowed after parameter prefix ':' ....
Esta fuerza debido :=
operador. Encontré algunos Hibernate issue sobre esto. Este problema aún está abierto. ¿No hay alguna solución para este problema?
¿Hay alguna cosa que puede ayuda desde aquí? http://dev.mysql.com/doc/refman/5.0/en/assignment-operators.html#operator_assign-value – ManuPK
@ManuPK Gracias, pero no ayudó. Creo que no hay solución para mi pregunta. Encontré una pregunta similar con la mía http://stackoverflow.com/questions/2712240/how-to-use-mysql-variables-with-hibernate pero no hay una buena solución. –