• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Distinct

21.08.25 02:36 작성 조회수 156

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

질문자

2021.08.25

감사합니다.

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