2013-01-16 3 views
5

다음 함수는 제대로 작동하지만 먼저 parent_id와 그 다음 순서로 결과를 정렬하고 싶습니다.Slick 쿼리 결과를 식으로 나타 내기

def getTree = for { 
    (a, c) <- Activities leftJoin Clients on (_.id === _.id_a) 
} yield (a.id, a.label, a.parent_id, a.order, c.id.?, a=c.name) 

어떻게하면 슬릭을 사용하여 할 수 있습니까?

답변

10

일반 컬렉션과 비슷합니까? 슬릭 2.1

getTree.sortBy(r => r._3 ~ r._4) 
+1

없습니다 ... (내 쿼리 selectStatement를 호출하여 확인). 너무 오래된 oldBy (nameThatHasMeaning, otherMeaningfulName.desc)는 sortBy (x => x._3 ~ x._4) 구문을 사용하여 사용되지 않습니다. 매끄러운 저자는 그렇게하는 이유가 있었지만 최종 사용자는 보편적으로 무의미한 결과를 낳았습니다. – virtualeyes

+0

일부 사례 클래스 인스턴스와'getTree.sortBy (r => r.parent_id ~ r.order)'를 'yield'할 수 있지만, 사례 클래스의 실제 선언은 상용구입니다. '('name1 -> value1,'name2 -> value2) '와 같은 생성자와'apply (name : Symbol)'와 같은 접근자를 가진'Tuple'-s가 core Scala에서 유용할까요? 예를 들면 :'yield (a.id, a.label, 'parent_id -> a.parent_id,'order-> a.order, c.id.?, a = c.name ')'getTree.sortBy r => r ('parent_id) ~ r ('order)) ' – idonnie

+0

이 답변은 여전히 ​​Slick 2.1에 유효합니까? IDEA가 ~ 연산자를 찾지 못했습니다. 또는 나는 어떤 마술 수입 명세서를 놓치고 있습니까? –

1

, 나는이 일을 발견

myQuery.sortBy(r => (r._3, r._4)) 

튜플 구문은 어떻게 직관적

관련 문제