liferay
Использование динамического и пользовательского SQL-запроса в Liferay
Поиск…
Вступление
Существуют сценарии при работе со слоем обслуживания в liferay, когда нам нужно запрашивать базу данных со слишком большим количеством предложений или иметь дело с несколькими таблицами. В таких случаях мы используем любой из:
1) Динамический запрос (оболочка по API-интерфейсу Hibernate)
2) Пользовательские SQL-запросы
замечания
Рекомендации:
Использование динамического запроса в Liferay
Для большинства сценариев, связанных с объектами уровня сервиса, мы можем обойтись с помощью вызовов по умолчанию, с некоторой помощью от искателей. Для простых сценариев, связанных с несколькими сущностями, мы переходим к использованию Dynamic query API. Это API-интерфейс обертки для API критериев, используемых в Hibernate. Его можно использовать для случаев, когда нам нужно генерировать динамический запрос, который не очень сложный по своей природе, используя несколько конструкций из API. Для начала, некоторые из наиболее часто используемых конструкций: DynamicQueryFactoryUtil -Used для построения запроса
RestrictionsFactoryUtil -Используется для предоставления ограничений iefields для сравнения с определенным значением, чтобы сузить результаты, соответствующие определенному значению или в пределах диапазона, и т. Д.
ProjectionFactoryUtil -Используется для предоставления прогнозов для получения полей, которые будут частью результата поиска, то есть вместо предоставления всего объекта, будут предоставлять только определенные поля или применять функцию агрегации (например, min.max, avg) на том же самом.
PropertyFactoryUtil -Используется для сравнения некоторого свойства из класса сущности, чтобы в основном выполнять сопоставление с другими полями из запроса
Реализация этих классов присутствует в пакете dao.orm.jpa со всеми доступными методами