문제
- DTO를 변환하여 반환해야 할 경우가 생김
- 뤼튼에게 샘플 코드를 보며 tuple 각 요소의 .get[0] 이런식으로 가져오라해서 가져오려는데 계속 빨간줄..!
val query = from(member)
.select(
member.id,
member.name,
member.email
)
.limit(10)
val memberDtos = mutableListOf<MemberDto>()
val result = query.fetch()
for (row in result) {
val id = row[0] as Long
val name = row[1] as String
val email = row[2] as String
memberDtos.add(MemberDto(id, name, email))
}
해결
- tuple은 Map과 유사한 interface로 제공됨
- 따라서 각각을
.get(key명) 으로 접근해야 함
- select문에 사용한
QClass.속성 이용
for (row in result) {
val id = row.get(member.id)
val name = row.get(member.name)
val email = row.get(member.email)
memberDtos.add(MemberDto(id, name, email))
}
의문점

- fetch()의 결과가
List<Tuple> 의 형태
- 각각의 결괴는 Tuple
- Tuple 안에서 각각은 Map과 유사한 형태
- 따라서 각각의 Map에서 get(key)로 접근!
마치며
- 혹여나 왜 for문을 쓰는가에 대한 생각이 드는 분께 이 글이 도움이 되길!
- 출처