Open riverrevir opened 2 years ago
1)JPQL의 특정 컬럼을 조회하는 방법은 특정 컬럼만 조회할 interface
를 구현하는 것이다.
public interface DesignerList{
String getSymbolDesigner();
}
이런 식으로 구현된 인터페이스를 Repository에서 쿼리문을 작성 후 사용할 수 있다. 하지만 이 부분은 조금 더 테스트가 필요하다. 이유는 2에서 설명하겠다.
2)특정 컬럼만 조회하는 부분은 1을 통해서 성공하였으나, 계속해서 null 값이 출력되었다. @Query(value = "SELECT DISTINCT s.symbolDesigner FROM symbol s")
아무래도 쿼리를 잘못 작성한 것 같다.
3)nativeQuery = true
를 사용하여 JPQL을 사용하지 않고 SQL을 사용하여 해결하였다.
@Query(value = "SELECT DISTINCT symbol_designer FROM symbol",nativeQuery = true)
중복 제거 된 디자이너들의 리스트들을 반환한다.
4)JPQL을 사용하여 해결하는 방법을 찾아내었다. 최종적으로 이렇게 작성하였다.
@Query(value = "SELECT DISTINCT s.symbolDesigner FROM symbol s")
List<String> findDistinctSymbolDesigner();
아무래도 2에서 오류는 JPQL 명명법을 제대로 숙지하지 않아서 생긴 오류같다.
기존의 Symbol 테이블에서 symbol_disigner 컬럼만 뽑고 싶었지만,
[No converter found capable of converting from type](https://tte-yeong.tistory.com/93)
에러가 발생하였다. 또한 symbol_disigner는 중복으로 들어갈 수 있었기에 중복된 디자이너를 제외한 디자이너 리스트만 전송해주는 API가 필요로 한다.