spring/JPA

JPA-DATA 한 컬럼만 가지고 오기-nativeQuery 옵션

질주하는구 2021. 7. 27. 10:22

T_BBS_ITEM(BbsItem) 테이블의 항목 정보중 특정 컬럼(BBS_ITEM_GROUP-bbsItemGroup-항목그룹) 정보만 가지고 오려는 경우
@Query으로 데이터를 가지고 올 수 있습니다.
이때 return값은 List<String>으로 처리를 하고 쿼리문 작성시 nativeQuery 옵션을 줘서 쿼리문 형식을 원하는 방식으로 정의 할 수 있습니다.

- nativeQuery 옵션 사용
@Query(value = "SELECT BBS_ITEM_GROUP FROM T_BBS_ITEM WHERE BBS_SET_SEQ = :bbsSetSeq", nativeQuery = true)
Hibernate: 
    /* dynamic native SQL query */ SELECT
        BBS_ITEM_GROUP 
    FROM
        T_BBS_ITEM 
    WHERE
        BBS_SET_SEQ = ?

- nativeQuery 옵션 미 사용
@Query(value = "SELECT bbsItemGroup FROM BbsItem WHERE bbsSetSeq = :bbsSetSeq")
Hibernate: 
    /* SELECT
        bbsItemGroup 
    FROM
        BbsItem 
    WHERE
        bbsSetSeq = :bbsSetSeq */ select
            bbsitem0_.BBS_ITEM_GROUP as col_0_0_ 
        from
            T_BBS_ITEM bbsitem0_ 
        where
            bbsitem0_.BBS_SET_SEQ=?

이 경우에는 nativeQuery 옵션을 사용 할 필요 까지 없는 겨우여서 사용 하지 않지만 쿼리문을 직접 사용해야 하는 경우 기존 시스템을 이관해야 하는
경우등 특별한 경우에 해당 옵션을 활용 할 수 있습니다.

반응형