Заменить ключевое слово в запросе hql и медлительностиJAVA

Программисты JAVA общаются здесь
Anonymous
Заменить ключевое слово в запросе hql и медлительности

Сообщение Anonymous »

После добавления операции замены в мой запрос hql он стал работать медленнее. Как я могу сделать это быстрее?
Продукты переносятся в мою базу данных с помощью cronjob. Моя цель — внести специальные изменения только в поле имени, не затрагивая поля sku и ean. Запрос также должен найти продукт, найденный при поиске имени продукта «XDF 51241 L» при вводе «XDF51241L».
Мой запрос перед добавлением метода замены:

Код: Выделить всё

where.append(" and (p.sku like :search or pd.name like :search or p.ean like :search ");
where.append(" or EXISTS(select 1 from ProductFeature pfe where pfe.product=p and (pfe.name like :search or pfe.value like :search))) ");

q.setParameter("search", "%"+productCriteria.getSearch()+"%");
После добавления метода замены мой запрос:

Код: Выделить всё

where.append(" and (p.sku like :search or pd.name like :search or p.ean like :search ");
where.append(" or REPLACE(pd.name, ' ', '') like :search ");
where.append(" or EXISTS(select 1 from ProductFeature pfe where pfe.product=p and (pfe.name like :search or pfe.value like :search))) ");

q.setParameter("search", "%" + productCriteria.getSearch().replaceAll("\\s+", "") + "%");
Я использовал метод replace для поиска по запросу с пробелами или без них, но мой запрос стал очень медленным с точки зрения производительности. Как я могу сделать свой запрос еще быстрее?

Подробнее здесь: https://stackoverflow.com/questions/786 ... d-slowness

Вернуться в «JAVA»