Как использовать принудительный индекс с QueryDSL?

В настоящее время я работаю над проектом, который использует queryDsl, jpa и hibernate с mysql в качестве базы данных. На выполнение одного из сгенерированных запросов ушло 625 секунд. Поскольку у меня нет свободы изменять индексы в самой таблице, но я могу использовать принудительный индекс для фактического запроса, что сокращает время запроса до 0,62 секунды во время тестирования, как мне это сделать в QueryDSL?


person geneqew    schedule 31.03.2015    source источник


Ответы (1)


Вы не можете использовать принудительный индекс непосредственно в Querydsl JPA, так как такой синтаксис не поддерживается. Можно настроить рендеринг Hibernate SQL, но это непросто http://www.znetdevelopment.com/blogs/2009/10/07/using-use-index-with-hibernatemysql/

Я бы рекомендовал использовать SQL в этом случае. Вы можете использовать SQL с Querydsl JPA, используя JPASQLQuery и HibernateSQLQuery.

person Timo Westkämper    schedule 01.04.2015