Spring Boot

JPA 쿼리

JPA 쿼리: 메서드 이름 기반 파생, JPQL을 사용한 @Query, 네이티브 쿼리, 페이지네이션, 정렬

30 면접 질문·
Mid-Level
1

JPQL이란 무엇인가요?

답변

JPQL(Java Persistence Query Language)은 데이터베이스 테이블이 아닌 JPA 엔티티를 조회하는 객체 지향 언어입니다. 네이티브 SQL과 달리 JPQL은 클래스 이름과 프로퍼티 이름을 사용하므로 객체 추상화를 유지하고 서로 다른 데이터베이스 시스템 간의 이식성을 높입니다. 특정 SQL 기능이 필요하지 않다면 기본적으로 JPQL을 사용하는 것이 좋습니다.

2

사용자 정의 JPQL 또는 SQL 쿼리를 실행할 수 있는 어노테이션은 무엇인가요?

답변

@Query 어노테이션을 사용하면 Spring Data JPA 리포지토리 안에서 직접 사용자 정의 쿼리를 정의할 수 있습니다. 기본적으로 JPQL을 작성할 수 있으며, nativeQuery 속성을 true로 설정하면 네이티브 SQL도 작성할 수 있습니다. 이 어노테이션은 메서드 이름에서 파생되는 query method보다 더 많은 유연성을 제공하며, 특히 join이나 서브쿼리가 포함된 복잡한 쿼리에 유용합니다.

3

메서드 매개변수를 @Query에 어떻게 바인딩하나요?

답변

@Param 어노테이션을 사용하면 @Query 쿼리에서 사용하는 매개변수에 명시적으로 이름을 지정할 수 있습니다. 이 방식은 인덱스 위치를 사용하는 것보다 가독성이 높고 견고하며, 특히 코드 리팩터링 시 유용합니다. 이 어노테이션은 JPQL의 명명된 매개변수에 필수이며, 유지보수성을 높이기 위해 네이티브 SQL 쿼리에서도 권장됩니다.

4

JPQL에서 결과를 필터링할 수 있는 절은 무엇인가요?

5

JPQL과 네이티브 SQL의 주요 차이점은 무엇인가요?

+27 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기