Я использую Hibernate. Я написал некоторый собственный запрос, потому что мне нужно использовать операцию выбора sub.
Запрос выглядит следующим образом:
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
Когда я запускаю этот запрос следующим образом:
sessionFactory.getCurrentSession()
.createSQLQuery(query)
.setParameter("kid", kid)
.setParameter("nid", nid)
.uniqueResult();
Это исключение выходит:
org.hibernate.QueryException: Space is not allowed after parameter prefix ':' ....
Это может быть вызвано оператором :=
. Об этом я нашел несколько Hibernate issue. Этот вопрос по-прежнему открыт. Разве нет решения для этой проблемы?