Я хочу знать, какой подход лучше, когда использовать JpaSpecificationExecutor и QueryDslPredicateExecutor? Да, мы можем использовать их оба одновременно.
использование queryDSL создаст много дополнительных классов, плохо это или хорошо для использования памяти и производительности?
Дело вкуса.
Если вы используете JpaSecificationExecutor, вы используете стандартные критерии JPA и API метамодели. Там Metamodel API создаст метамодель на основе вашего сопоставления, которую вы должны использовать для обеспечения безопасности типов во время компиляции.
Где QueryDSL - это дополнительная структура, которая не ограничивается JPA.
Вы можете использовать его с JPA, SQL, коллекциями, MongoDB, Lucene и, возможно, с другими.
Как я уже сказал, это дело вкуса. Я предпочитаю QueryDSL, потому что мне не нравится API критериев. Но это только я.
@SimonMartinelli Можете ли вы сказать что-нибудь о различиях в производительности, с акцентом на соответствующие реализации за кулисами?
Разницы в производительности нет. Обе структуры генерируют SQL. Производительность на стороне БД можно улучшить с помощью индексов.
спасибо за ответ, но что я действительно хочу знать, так это когда использовать каждый из них? лучшая практика!