개발일지/2023_한이음

[개발] spring boot - JPQL(@Query)를 사용하여 데이터 거르기

기억지기 개발자 2023. 7. 9. 12:48

🛤️상황

  • tag 테이블에는 아래와 같이 4개의 칼럼이 있는데 프런트로 넘겨줄 때는 이 중 name, code만 필요.
  • 기본으로 제공하는 JPA 메소드 안에서 해결하려고 했지만 따로 SQL문을 작성해야 했음.

tag 테이블 필드
실제 JPQL 코드

🗝️과정/해결

  • 아래의 코드 하나만으로 tag, dept의 정보를 모두 각각의 테이블에서 조회돼서 다른 school 테이블의 필드들과 함께 sch에 저장이 되었다.
Optional<School> sch = schoolRepository.findById(id);

 

<문제점>

하지만 저렇게 자동으로 조회가 되면 tag 테이블에 있는 모든 필드들을 가지고 오게 되니까 안됨.

 

<해결>

아래의 필드들을 지워버리니 자동으로 조회되지 않고, 위에서 작성한 @Query을 통해서 원하는 값들만 DTO에 담아 반환할 수 있었다. 

school 테이블 필드

(dept=학과도 동일한 과정으로 진행)