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

김태민님의 프로필 이미지
김태민

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

임베디드 타입

복합키(EmbeddedId) 사용시 도커환경에서 API Empty Value 반환 이슈

작성

·

441

·

수정됨

0

안녕하세요 영한님,

영한님 강의중 QueryDsl, JPA 다 시청한 수강자인데
따로 복합키 복합키 EmbeddedId 를 언급하는 강의가 없어 여기에 질문 남기는점 죄송합니다,

현재 복합키로 구성되어있는 엔티티를 QueryDSL로 조회하여 반환하는 API를 설계했는데 로컬 IDE 즉 제 로컬 인텔리제이에서 빌드해서 Application을 띄울 시에 원하는 시나리오대로 DB의 저장되어있는 데이터를 반환하지만, Image 환경 즉 Docker Container, ECS 환경에서 이 JAR 파일을 빌드시에 쿼리는 잘 나가지만 데이터가 불러와지지 않는 현상이 발견됩니다,

(제 로컬에서 터미널을 통해 Jar파일을 빌드해도 잘 됩니다.)

복합키로 구성되어있는 테이블중 다른 일반타입의 필드(컬럼)만을 조회할땐 문제가 없지만 복합키중 일부 컬럼을 같이 조회할 시 이런 현상이 발견되고 있습니다.. 이런 이슈를 겪어본적이 있으신지 아니면 이 문제에 대해 해결방법이 있는지 궁급합니다.

 

+++

@Query 어노테이션으로 네이티브 쿼리를 짜봐서 도커 환경에서 테스트 해봤는데 네이티브 쿼리는 또 정상작동을 하네요...

답변 1

0

안녕하세요, 인프런 AI 인턴이에요. 복합키를 사용하여 QueryDSL과 JPA를 이용하여 데이터를 조회하는 API에서 로컬 환경에서는 잘 작동하지만, 도커 환경에서는 데이터가 불러와지지 않는 현상이 발생한다는 문제를 겪고 계신 것 같습니다.

이러한 문제가 발생하는 이유는 여러 가지가 있을 수 있습니다. 우선, 확인해야 할 사항은 도커 컨테이너 내에서 DB 컨테이너와의 연결이 정상적으로 이루어지고 있는지 확인하는 것입니다. 컨테이너 안에서의 네트워크 설정, DB 컨테이너의 호스트네임 또는 IP 등이 문제가 될 수 있습니다. 도커 컨테이너 내에서 DB 컨테이너에 접근 가능한지 확인해보세요.

또한, 도커 컨테이너에서는 일부 파일 시스템이 읽기 전용으로 마운트되는 경우가 있습니다. 이 경우에는 데이터를 조회할 때 문제가 발생할 수 있습니다. 데이터를 조회하는 코드가 도커 컨테이너 내에서 읽기/쓰기 가능한 영역에 접근하고 있는지 확인해보세요.

그 외에도, 도커 컨테이너와 호스트 사이의 포트 매핑이나 방화벽 설정 등이 문제가 될 수 있으니 해당 설정들을 확인해보시기 바랍니다.

마지막으로, 네이티브 쿼리는 잘 작동하는 것으로 보이는데 이는 QueryDSL과 JPA의 조합에서 문제가 발생할 가능성이 있습니다. QueryDSL이 복합키를 다루는 방식에 제한이 있는지, 또는 JPA 설정이 올바르게 되어 있는지 등을 확인해보실 수 있습니다.

위의 사항들을 확인해 보시고 문제 해결에 도움이 되는지 확인해보세요. 추가로 어떤 환경을 사용하고 있는지, 문제 상황에 대한 코드 또는 에러 메시지를 공유해주시면 더 정확한 도움을 드릴 수 있을 것 같아요.

김태민님의 프로필 이미지
김태민

작성한 질문수

질문하기