Как мне сделать этот запрос с использованием JPA, чтобы он не был очень медленным? - PullRequest
1 голос
/ 30 августа 2010

Как эффективно объединить несколько таблиц с использованием JPQL

select a.text,b.text,c.text,
from Class1 a, Class2 b, Class3 c
where a.id=b.b_id and b.id=c.b_id and a.text like ... and b.text like ...

Я делаю что-то вроде этого, в таблицах всего несколько тысяч строк, но запрос занимает 5-6 секунд, чтобызапустить.Я предполагаю, что он объединяет все таблицы перед выполнением фильтра

Я знаю, что скорость может зависеть от реализации поставщика JPA, но я подозреваю, что это неправильный способ написать этот запрос!

Ответы [ 2 ]

1 голос
/ 30 августа 2010

Посмотрите, какой SQL-запрос был сгенерирован.Затем EXPLAIN этот запрос и попытайтесь его оптимизировать.Например, убедитесь, что у вас есть правильные индексы.

0 голосов
/ 30 августа 2010

Если вам не нравится SQL, который генерирует JPA (но я сомневаюсь, что он генерирует «плохой» SQL), вы всегда можете использовать Собственный запрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...