Встречается на собеседованиях • сегодня
Можно ли написать свой запрос в JPA
Да, можно. В JPA есть несколько способов:
1. **JPQL (Java Persistence Query Language)** - объектно-ориентированный аналог SQL:
```java
TypedQuery query = em.createQuery(
"SELECT u FROM User u WHERE u.age > :age", User.class);
query.setParameter("age", 18);
List users = query.getResultList();
```
2. **Native SQL** - для сложных запросов или специфичных для СУБД:
```java
Query query = em.createNativeQuery(
"SELECT * FROM users WHERE registration_date > ?1", User.class);
query.setParameter(1, startDate);
```
3. **Criteria API** - типобезопасный построитель запросов:
```java
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery(User.class);
Root user = cq.from(User.class);
cq.select(user).where(cb.gt(user.get("age"), 18));
List users = em.createQuery(cq).getResultList();
```
4. **Именованные запросы** (@NamedQuery) - предопределенные в ентити.
Выбор зависит от сложности запроса, требований к производительности и предпочтений разработчика.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы