'nativeQuery to dto'에 해당되는 글 1건

  1. 2022.02.07 SPRING-DATA-JPA nativeQuery true에서 result처리

nativeQuery를 true로 설정 후 결과 값을 Map이 아닌 dto 형식으로 넘기고자 하는 경우 interface를 활용 할 수 있습니다.

 

아래와 같은 쿼리문 실행 후 결과를 담을 

@Query(value = "SELECT MAX(BBS_ITEM_LIST_ORDER) as listOrder, MAX(BBS_ITEM_MINI_ORDER) as miniListOrder, MAX(BBS_ITEM_VIEW_ORDER) as viewOrder  FROM T_BBS_ITEM WHERE BBS_SET_SEQ = :bbsSetSeq" , nativeQuery = true)
public BbsItemInf getMaxOrderSub(@Param("bbsSetSeq") Integer bbsSetSeq);

 

interface를 생성 합니다.

public interface BbsItemInf {
	Integer getListOrder();
	Integer getminiListOrder();
	Integer getviewOrder();
}

생성한 interface는 아래와 같이 받아서 메소드를 호출 해 바로 사용 가능 합니다.

BbsItemInf bbsItemInf = bbsItemRepository.getMaxOrderSub(2);
System.out.println("bbsItemInf: "+bbsItemInf.getListOrder());

데이터 설정은 as 이름으로 설정 됩니다.(아래 stackorverflow내용보면 match by order not by name 이런 내용이 있는데

이건 답변 하신분이 쿼리문 작성시에 as를 하지 않고 컬럼명만 작성해서 순차적으로 데이터 셋팅이 되는 경우로 보입니다.)

https://stackoverflow.com/questions/64762080/how-to-map-sql-native-query-result-into-dto-in-spring-jpa-repository

 

How to map sql native query result into DTO in spring jpa repository?

Hi what I am trying to achieve is to get SQL native query result map into my DTO in java spring jpa repository, how do I do this properly? I try several code, but it does not work, here is what I t...

stackoverflow.com

stackorverflow의 질문 답변에 보면 이런식의 사용의 경우 내부적으로 DTO로 바로 넘기는 방식에 비해서 자원 

낭비가 많다는 이야기가 있어 확실 한 테스트가 필요 합니다.

특별한 경우가 아니라면 가능하면 map을 이용 하는게 좋을거 같습니다.

반응형
Posted by 질주하는구
,