Spring
Spring - JPA distinct 여러 컬럼 사용하기
codeManager
2024. 3. 12. 22:34
반응형
Spring JPA를 사용할 때 distinct를 사용하는 경우 @Query 어노테이션을 사용해서 처리합니다.
distinct 여러 컬럼을 할 때의 코드에 대해서 알아보겠습니다.
JPA repository 코드
@Query(value = "select distinct type, code from table", nativeQuery = true)
List<Object> findDistinct();
distinct 컬럼 한 개일때는 String으로 처리가 가능하지만, 두개 이상의 경우에는 Object로 결과값을 받아야 합니다.
JPA repository 조회하는 Service layer
List<Object> objects = repository.findDistinct();
List<Result> result = objects.stream()
.map(x ->{
Object[] obj = (Object[]) x;
String type = (String) obj[0];
String code = (String) obj[1];
return new Result(type, code);
}).collect(Collectors.toList());
Object를 Object[] 로 casting해서 [0], [1] 값을 가져오면 됩니다.
반응형