강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김형우님의 프로필 이미지
김형우

작성한 질문수

JPA 에서 네이티브 쿼리를 사용할때 질문입니다.

작성

·

8

0

Jpa 학습중인데요..

궁금한게 데이터베이스 마다 특정 기능들이있지 않습니까? 포스트그레의 postgis기능같은거요 (ST_Distance 요렁거)

이런건 queryDsl로 하기까다로운거 같은데

이런경우 어떻게 하나요 그냥 네이티브쿼리로 처리하나요? 아니면 MyBatis랑 혼용해서 사용 하나요 궁금합니다…

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

김형우님, Spring Data JPA에서 데이터베이스의 특정 기능을 활용해야 할 경우, 네이티브 쿼리를 사용하는 것이 한 가지 방법입니다. @Query 어노테이션을 통해 네이티브 쿼리를 작성할 수 있으며, 데이터베이스의 고유한 기능도 이런 방식으로 사용할 수 있습니다.

예를 들어, 포스트그레의 postgis 기능을 활용할 때, 직접 네이티브 쿼리를 실행하여 필요한 기능을 구현할 수 있습니다.

또한, QueryDSL로 복잡한 SQL을 작성하기 어렵다면, 필요에 따라 MyBatis와 같은 다른 ORM 또는 SQL 매퍼를 혼용하여 사용할 수도 있습니다. 이렇게 하면 복잡한 쿼리를 보다 쉽게 구현할 수 있습니다.

참고로, Spring Data JPA에서는 점점 더 복잡한 쿼리가 필요하면 커스텀 Repository 구현을 고려할 수 있습니다. 이 방법은 EntityManager와 직접 상호작용하거나 Spring Framework의 JdbcTemplate을 활용해 네이티브 SQL을 작성하는 등의 다양한 접근 방식을 제공합니다.

필요에 따라 적절한 방법을 선택하여 구현하면 됩니다.

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations

김형우님의 프로필 이미지
김형우

작성한 질문수

질문하기