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

roman14님의 프로필 이미지
roman14

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

ENUM 타입 조회가 안됩니다

작성

·

396

0

 

실습 도중 여러가지를 해보다 문제가 발생하여 질문드립니다.

SQL 쿼리를 통해 조회할 경우 값이 보이나 

JPQL을 실행할 경우 ENUM 컬럼 자체를 조회하지 못하는 문제가 있습니다. 

 

P.S.

SELECT concat('', o.status) FROM Order as o

JPA 쿼리를 위와 같이 비틀어서 사용하면 정상적으로 출력됨을 확인하였으나, 엔티티 자체를 select 하거나 new 키워드를 통해 VO, DTO 클래스 생성자로 매핑하는 방식은 불가능했습니다.

답변 2

0

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

안녕하세요. roman14님

테스트 코드에서 해당 객체를 저장한 다음에, 다시 조회하고, println으로 출력해보니 잘 출력되는 것을 확인했습니다. 아마도 IDE에서 제공하는 기능에 문제가 있는 것 같아요.

감사합니다.

roman14님의 프로필 이미지
roman14
질문자

확인해본 결과 말씀대로 애플리케이션 동작에는 전혀 문제가 없는것으로 보아, IDE 에서만 조회되지 않는 문제가 발생하고 있었습니다. 이 부분에 대한 문제는 별도로 좀 더 찾아보던가 해야겠네요. 감사합니다.

0

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

안녕하세요. roman14님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

 

roman14님의 프로필 이미지
roman14
질문자

바쁘실 와중에 확인 감사합니다. 

 

요청하신 프로젝트 압축파일 공유 링크는 아래와 같습니다.

 

https://drive.google.com/file/d/1fDHTVVnuhxKiZYlJq-CVESsc1n6pjEKV/view?usp=sharing

 

1. intellij IDEA Ultimate 의 persistence 탭에 JPA 콘솔을 통해 Enum 타입 필드를 조회하는 쿼리를 실행하였습니다. JPQL의 내용과 실행 결과의 이미지는 아래와 같으며, enum 타입인 status 필드 자체를 조회해오지 못하였습니다.

SELECT o.id, o.status FROM Orders o

 

2. 간단하게 데이터 조회가 정상적으로 되는지 확인하기 위하여 JPQ Console을 통해 Order 엔티티를 조회하고자 하였습니다. 조회에 앞서 사전에 입력된 데이터의 SQL 쿼리는 다음과 같습니다.

INSERT INTO MEMBER(MEMBER_ID, ADD_TIME, CITY, STREET, ZIP_CODE, DESCRIPTION, NAME) VALUES (1, '2021-01-01 10:00:01', null, null, null, null, 'name01');

INSERT INTO DELIVERY(DELIVERY_ID, CITY, STREET, ZIP_CODE) VALUES(2, null, null, null);

INSERT INTO ORDERS(ORDER_ID, ORDER_DATE, STATUS, DELIVERY_ID, MEMBER_ID) VALUES (1, '2021-01-01 10:00:01', 'ORDER', 2, 1);

COMMIT;

 

입력된 해당 데이터 기반으로 JPQL이 아닌 SQL 쿼리를 통해 조회 할 경우 입력된 데이터가 정상 확인되는 것으로 보아 데이터베이스에 입력된 값은 정상임을 확인하였습니다.

 

roman14님의 프로필 이미지
roman14

작성한 질문수

질문하기