Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 3.53 KB

Criteria API.md

File metadata and controls

28 lines (21 loc) · 3.53 KB
tags
ORM

API критериев (Criteria API) - это программный интерфейс, предоставляемый Java Persistence API (JPA) и Hibernate, для создания динамических запросов к базе данных без явного написания SQL-запросов. Он позволяет строить запросы с использованием объектно-ориентированной модели, что делает код более читаемым, поддерживаемым и безопасным.

Criteria API предоставляет возможность создавать запросы в виде цепочки вызовов методов, которые моделируют различные компоненты запроса, такие как условия (фильтры), сортировка, объединение таблиц, выборка конкретных полей и другие операции.

[!success]+ Основные цели Criteria API:

  1. Гибкость и динамичность: Criteria API позволяет строить запросы динамически в зависимости от условий и требований приложения. Вы можете добавлять и удалять условия, комбинировать их с использованием логических операций и создавать сложные запросы.
  2. Безопасность типов: Criteria API работает с типами данных на уровне компиляции, что позволяет избежать ошибок связанных с опечатками и неправильными типами данных в запросах.
  3. Абстракция от конкретной базы данных: Criteria API абстрагирует различные диалекты SQL и специфичные для базы данных детали, позволяя писать переносимый код, который будет работать с разными СУБД.
  4. Улучшенная поддержка инструментов разработки: Поскольку запросы создаются в виде объектов, Criteria API обеспечивает лучшую поддержку инструментов разработки, таких как IDE, которые могут предоставлять автодополнение кода, проверку типов и другие функции.

Пример использования Criteria API:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Product> query = cb.createQuery(Product.class);
Root<Product> root = query.from(Product.class);

query.select(root)
     .where(cb.equal(root.get("category"), "Electronics"))
     .orderBy(cb.asc(root.get("name")));

List<Product> products = entityManager.createQuery(query).getResultList();

В этом примере используется Criteria API для создания запроса на выборку продуктов из базы данных, где категория равна "Electronics". Результаты сортируются по имени продукта в алфавитном порядке. Затем запрос выполняется с помощью EntityManager, и результаты сохраняются в список products.