Chức năng sau hoạt động tốt, nhưng tôi muốn nó sắp xếp kết quả trước tiên bởi parent_id, và sau đó theo thứ tự.Sắp xếp các kết quả truy vấn Slick trong một biểu thức
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)
Làm cách nào để thực hiện điều đó bằng Slick?
Làm thế nào trực quan cú pháp tuple là ... không. Trình tự cũ quá cũ (nameThatHasMeaning, otherMeaningfulName.desc) đã không còn được dùng theo cú pháp sortBy (x => x._3 ~ x._4). Slick tác giả đã có một lý do để làm như vậy, nhưng người dùng cuối bị boilerplate và vô nghĩa đếm ra số tuple như là một kết quả. – virtualeyes
Bạn có thể 'tạo ra một số cá thể kiểu chữ hoa và' getTree.sortBy (r => r.parent_id ~ r.order) ', nhưng khai báo thực tế của lớp chữ thường là một bản mẫu. Có thể đặt tên là 'Tuple'-s, với hàm tạo như' ('name1 -> value1,' name2 -> value2) 'và accessor như' apply (name: Symbol) 'sẽ hữu ích trong lõi Scala? Ví dụ: 'yield (a.id, a.label, 'parent_id -> a.parent_id,' order -> a.order, c.id.?, A = c.name)', rồi 'getTree.sortBy (r => r ('parent_id) ~ r (' thứ tự)) ' – idonnie
Câu trả lời này vẫn hợp lệ cho Slick 2.1? IDEA không tìm kiếm toán tử ~. Hoặc tôi thiếu một số tuyên bố nhập khẩu ma thuật? –