Встречается на 2% собеседований по Java
Как изменить генерируемый Spring запрос
Spring Data JPA позволяет кастомизировать запросы через аннотации @Query или спецификации.
1. @Query (JPQL или нативный SQL):
java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u WHERE u.active = true")
List<User> findActiveUsers();
@Query(value = "SELECT * FROM users WHERE age > :age", nativeQuery = true)
List<User> findByAgeGreaterThan(@Param("age") int age);
}2. Specification (динамические запросы):
java
public class UserSpecifications {
public static Specification<User> hasName(String name) {
return (root, query, cb) -> cb.equal(root.get("name"), name);
}
}
// Использование:
List<User> users = userRepository.findAll(hasName("John"));3. QueryDSL:
Подключается через JPAQueryFactory для типобезопасных запросов.
4. @EntityGraph для управления fetch-стратегией.
Выбор зависит от сложности запроса и требований к производительности.

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