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

dev_eon님의 프로필 이미지
dev_eon

작성한 질문수

실전! 스프링 데이터 JPA

대시보드에서 사용되는 Native Query들은 어디에 보관하나요?

작성

·

123

0

보통 연관된 엔티티 레포지토리에 네이티브 쿼리를 넣는다고 생각했는데,

대시보드 api를 구현하다보니 이런저런 테이블과 join되는 것들이 많아 연관된 엔티티도 많습니다..

public interface SleepRepository extends JpaRepository<Sleep, Long> {
// 여기에 sleep entity말고도 3개 이상의 entity가 조인되는 native query가 있습니다
}

혹 이런경우는 native 쿼리들을 모아서 보관하나요? 보관하게 된다면 어디에 어떻게 보관하는지 알 수 있을까요?

 

답변 2

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. dev_eon님

간단한 경우 레포지토리에 넣어도 되고, 복잡하고 별도로 관리하고 싶은 경우 문자열 상수를 정의해서 사용하시면 됩니다.

만약 복잡한 네이티브 쿼리를 동적 쿼리로 사용하거나 또는 XML에 편리하게 관리하고 싶다면 JPA를 사용하더라도 이런 쿼리를 위해서 MyBatis 기술을 추가로 사용하는 것도 고려할 수 있습니다.

감사합니다.

0

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

NativeSQL 작성에 대해 궁금해하시는 dev_eon님, 강의에서 나온 내용과 관련하여 김영한 강사님께서 답변해주신 내용이 있습니다. 아래 링크를 확인해보시면 도움이 될 것 같습니다.

강사님의 답변을 요약드리자면, 복잡한 쿼리의 경우 대부분 개발자가 직접 작성하며, SQL을 잘 다루는 것이 중요하다고 합니다. 특정 회사의 경우 모든 SQL을 DBA가 작성해주는 경우도 있다고 하니, 상황에 따라 다를 수 있다는 점 참고하시면 좋을 것 같습니다.

도움이 되셨길 바랍니다.

dev_eon님의 프로필 이미지
dev_eon

작성한 질문수

질문하기