• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

tuple자료구조가 어떻게 되어 있는 건가요 ?

23.05.02 14:51 작성 조회수 671

0

@Test
public void tupleProjection() throws Exception {
    List<Tuple> result = queryFactory
            .select(member.username, member.age)
            .from(member)
            .fetch();

    System.out.println("result = " + result);
    for (Tuple tuple : result) {
        String username = tuple.get(member.username);
        Integer age = tuple.get(member.age);
        System.out.println("username = " + username);
        System.out.println("age = " + age);
    }
}

 

result = [[member1, 10], [member2, 20], [member3, 30], [member4, 40]]

username = member1

age = 10

username = member2

age = 20

username = member3

age = 30

username = member4

age = 40

 

출력값이 위와 같은데 .get()메소드로 꺼내는 걸로 보면 Map과 같은 자료구조인건가 싶기도 하면서, 통째로 출력하면 List<List<>>와 같은 자료구조의 모습이더라구요

tuple은 어떤 자료구조인가요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.05.02

안녕하세요, hjemsti 님. 공식 서포터즈 y2gcoder 입니다.

com.querydsl.core.Tuple은 QueryDSL에서 제공해주는 인터페이스로 쿼리 결과를 튜플 형태로 표현할 때 사용합니다. 여기서 튜플이 무엇인지에 대해 질문해주신 것으로 이해했습니다.

컴퓨터 공학, 거기서도 데이터베이스의 튜플은 쉽게 말해 테이블의 row를 말합니다. 쿼리 결과로 나온 결과 행들을 타입에 맞춰 담을 수 있게 만든 인터페이스가 Tuple입니다. QueryDSL의 각 구현체들(querydsl-jpa 등)은 이 tuple 인터페이스를 구현하여 사용하게 됩니다.

튜플에 대한 자세한 설명은 아래의 링크를 참고해보시길 권해드립니다.

http://wiki.hash.kr/index.php/%ED%8A%9C%ED%94%8C

Tuple 구현체는 IDE를 통해 com.querydsl.core.Tuple 인터페이스로부터 탐색해서 찾아보실 수 있습니다!

감사합니다.