Встречается на собеседованиях • сегодня
Какой синтаксис можно использовать с аннотацией Query в Spring Data JPA
Аннотация `@Query` позволяет писать кастомные JPQL или нативные SQL запросы. Основные варианты:
1. **JPQL** (по умолчанию):
```java
@Query("SELECT u FROM User u WHERE u.email = ?1")
User findByEmail(String email);
```
2. **Нативный SQL** (с `nativeQuery = true`):
```java
@Query(value = "SELECT * FROM users WHERE email = ?1", nativeQuery = true)
User findByEmailNative(String email);
```
3. **Именованные параметры** (через `:param`):
```java
@Query("SELECT u FROM User u WHERE u.name = :name AND u.age > :age")
List findByNameAndAge(@Param("name") String name, @Param("age") int age);
```
4. **SpEL выражения** (в Spring Data JPA 1.4+):
```java
@Query("SELECT u FROM #{#entityName} u WHERE u.active = true")
List findAllActive();
```
5. **Модифицирующие запросы** (с `@Modifying`):
```java
@Modifying
@Query("UPDATE User u SET u.status = ?1 WHERE u.id = ?2")
void updateUserStatus(String status, Long id);
```

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