【发布时间】:2026-01-27 23:25:02
【问题描述】:
我正在使用 hibernate 4.x 并希望在 HQL 查询中设置来自 MySQL 的“SQL_NO_CACHE”语句
@Query("FROM mytable t WHERE id=1");
目前生产
select * from mytable where id=1
但我想要
select SQL_NO_CACHE * from mytable where id=1
但我不知道怎么做。
使用本机查询没有问题,但是所有查询都是用 HQL 编写的,并且比这个示例复杂得多。所以我得到了一个QuerySyntaxException: unexpected token 异常,因为这个语句无论如何都没有记录在休眠文档中。
http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch16.html
【问题讨论】:
-
嗯,Hibernate 支持每个 RDBMS 特定语句显然是不现实的,因此 Native SQL 将是这里唯一的选择。
-
当然,但我什至没有找到文档化的方法来扩展 HqlParser 以自行添加
-
更进一步,也许您实际上可以通过自定义方言来做到这一点。请参阅此处的示例:keyurj.blogspot.co.uk/2012/12/…