我如何在 QueryDSL 中使用强制索引?

How do i use force index with QueryDSL?

我目前正在从事使用 queryDsl、jpa 和 hibernate 以及 mysql 作为数据库的项目。生成的查询之一执行了 625 秒。由于我没有自由更改 table 本身的索引,但我可以在实际查询上使用强制索引,这在测试期间将查询时间减少到 0.62 秒,我如何在 QueryDSL 中执行此操作?

您不能在 Querydsl JPA 中直接使用强制索引,因为不支持这种语法。可以自定义 Hibernate SQL 渲染,但这并不简单 http://www.znetdevelopment.com/blogs/2009/10/07/using-use-index-with-hibernatemysql/

我建议在这种情况下使用 SQL。您可以使用 SQL 和 Querydsl JPA 使用 JPASQLQueryHibernateSQLQuery.