如何在休眠原生查询中使用MySQL分配运算符(:=)?
2022-09-01 20:17:54
我正在使用Hibernate。我写了一些原生查询,因为我需要使用子选择语句。
查询如下所示:
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问题。此问题仍处于打开状态。这个问题没有任何解决方案吗?:=