인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

H K님의 프로필 이미지
H K

작성한 질문수

실전! 스프링 데이터 JPA

메소드 이름으로 쿼리 생성

Distinct

작성

·

211

0

안녕하세요 영한님 강의 너무 잘보고있습니다.

Distinct 쿼리를 한번 만들어 보았는데요

public interface MemberRepository extends JpaRepository<Member,Long> {

    List<Member> findDistinctByUsername(String userName);

}

=========================

//테스트 코드

    @Test

    public  void findDistinctByUsername(){

        Member m1 = new Member("AAA", 10);

        Member m2 = new Member("AAA", 20);

        memberRepository.save(m1);

        memberRepository.save(m2);

        List<Member> findDistinctByUsername = memberRepository.findDistinctByUsername("AAA");

    }

==================================

실행 결과

Hibernate: 

    select

        distinct member0_.member_id as member_i1_0_,

        member0_.age as age2_0_,

        member0_.team_id as team_id4_0_,

        member0_.username as username3_0_ 

    from

        member member0_ 

    where

        member0_.username=?

---------------------------------------------

제가 궁금한건 결국 마지막엔 Member 의 필드를 모두 조회합니다. 

그런데 Id 의 값은 중복이 될수 없으니 이 쿼리는 Member 엔티티를 모두 조회하는거랑 같습니다.

Id를 요구하지않는 테이블에서만 이런 쿼리 메소드(distinct )

를 사용하는건가요 ??

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. H K님

네 이런 경우에는 효과가 없습니다.

감사합니다.

H K님의 프로필 이미지
H K
질문자

감사합니다.

그럼면 주로 저럴떈 Id가 없는(고유식별값) 테이블에서 유용하겠네요 !

H K님의 프로필 이미지
H K

작성한 질문수

질문하기