Я сталкиваюсь с проблемой производительности в моем SQL с использованием DetachedCriteria Hibernate. У меня есть несколько отношений многие-к-одному, и когда Hibernate генерирует SQL, он включает в себя все поля из таблиц, которые объединены в FROM.
Когда это происходит, MySQL требует много времени для выполнения запроса (который также имеет порядок и подзапрос, добавляющий к проблеме). Для моих на данный момент 50к записей ~ 6сек. Когда я удаляю ненужные поля в SELECT только для объекта домена, который меня беспокоит, он работает меньше 500 мс.
Можно ли как-то сказать Hibernate не включать поля из объединений?
Я попытался установить параметр fetch в файлах сопоставления на «join» и «select», и это не имеет значения в сгенерированном SQL.
Я также попытался установить отдельную корневую запись, но из того, что я прочитал, это не работает с подкачкой страниц (что я также делаю).
Я мог бы попытаться написать запрос как HQL, но с подзапросом это только усиливает головную боль.