작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
1.1K
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
안녕하세요, 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 인터페이스로부터 탐색해서 찾아보실 수 있습니다!
감사합니다.