我目前正在研究使用 queryDsl、jpa 和 hibernate 以及 mysql 作为数据库的项目。其中一个生成的查询执行时间为 625 秒。由于我没有自由更改表本身的索引,但我可以在实际查询中使用强制索引,这在测试期间将查询时间降低到 0.62 秒,我如何在 QueryDSL 中执行此操作?
最佳答案
您不能在 Querydsl JPA 中直接使用强制索引,因为不支持此类语法。可以自定义 Hibernate SQL 渲染,但这不是微不足道的 http://www.znetdevelopment.com/blogs/2009/10/07/using-use-index-with-hibernatemysql/
在这种情况下,我建议使用 SQL。您可以使用 JPASQLQuery
将 SQL 与 Querydsl JPA 一起使用和 HibernateSQLQuery
.
关于hibernate - 我如何在 QueryDSL 中使用强制索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367797/