JPA 쿼리
JPA 쿼리: 메서드 이름 기반 파생, JPQL을 사용한 @Query, 네이티브 쿼리, 페이지네이션, 정렬
30 면접 질문·
Mid-Level
1JPQL이란 무엇인가요?
1
JPQL이란 무엇인가요?
답변
JPQL(Java Persistence Query Language)은 데이터베이스 테이블이 아닌 JPA 엔티티를 조회하는 객체 지향 언어입니다. 네이티브 SQL과 달리 JPQL은 클래스 이름과 프로퍼티 이름을 사용하므로 객체 추상화를 유지하고 서로 다른 데이터베이스 시스템 간의 이식성을 높입니다. 특정 SQL 기능이 필요하지 않다면 기본적으로 JPQL을 사용하는 것이 좋습니다.
2사용자 정의 JPQL 또는 SQL 쿼리를 실행할 수 있는 어노테이션은 무엇인가요?
2
사용자 정의 JPQL 또는 SQL 쿼리를 실행할 수 있는 어노테이션은 무엇인가요?
답변
@Query 어노테이션을 사용하면 Spring Data JPA 리포지토리 안에서 직접 사용자 정의 쿼리를 정의할 수 있습니다. 기본적으로 JPQL을 작성할 수 있으며, nativeQuery 속성을 true로 설정하면 네이티브 SQL도 작성할 수 있습니다. 이 어노테이션은 메서드 이름에서 파생되는 query method보다 더 많은 유연성을 제공하며, 특히 join이나 서브쿼리가 포함된 복잡한 쿼리에 유용합니다.
3메서드 매개변수를 @Query에 어떻게 바인딩하나요?
3
메서드 매개변수를 @Query에 어떻게 바인딩하나요?
답변
@Param 어노테이션을 사용하면 @Query 쿼리에서 사용하는 매개변수에 명시적으로 이름을 지정할 수 있습니다. 이 방식은 인덱스 위치를 사용하는 것보다 가독성이 높고 견고하며, 특히 코드 리팩터링 시 유용합니다. 이 어노테이션은 JPQL의 명명된 매개변수에 필수이며, 유지보수성을 높이기 위해 네이티브 SQL 쿼리에서도 권장됩니다.
4
JPQL에서 결과를 필터링할 수 있는 절은 무엇인가요?
5
JPQL과 네이티브 SQL의 주요 차이점은 무엇인가요?
+27 면접 질문
기타 Spring Boot 면접 주제
Spring Core - IoC & DI
Junior
22개 질문Spring Boot Auto-Configuration
Junior
20개 질문Spring Boot Starters
Junior
18개 질문Application Properties & YAML
Junior
16개 질문SLF4J 및 Logback을 사용한 로깅
Junior
20개 질문Spring Boot DevTools
Junior
15개 질문Spring MVC Basics
Mid-Level
20개 질문Spring REST Controllers
Mid-Level
20개 질문Request & Response Handling
Mid-Level
20개 질문예외 처리
Mid-Level
25개 질문Bean Validation
Mid-Level
25개 질문Spring Data JPA 기초
Mid-Level
25개 질문JPA 엔티티 및 관계
Mid-Level
30개 질문Spring Data Repositories
Mid-Level
25개 질문Spring Security 기초
Mid-Level
25개 질문Spring Boot Actuator
Mid-Level
20개 질문JUnit과 Mockito를 사용한 단위 테스트
Mid-Level
30개 질문Spring Boot 테스트
Mid-Level
30개 질문Profiles와 Environment
Mid-Level
20개 질문RestTemplate 및 WebClient
Mid-Level
24개 질문Async와 스케줄링
Mid-Level
25개 질문Spring을 사용한 캐싱
Mid-Level
25개 질문Spring WebFlux (리액티브)
Mid-Level
25개 질문Spring 트랜잭션
Senior
30개 질문고급 인증 및 인가
Senior
30개 질문JWT 및 스테이트리스 보안
Senior
20개 질문OAuth2와 Authorization Server
Senior
20개 질문Spring Boot와 Docker
Senior
19개 질문Spring을 활용한 마이크로서비스
Senior
25개 질문Spring Cloud Config
Senior
19개 질문성능 최적화
Senior
30개 질문GraalVM Native Images
Senior
20개 질문