2012-03-06 24 views
6

Tôi có một thực thể với trường ArrayCollection. Trong chú thích tôi có thể viếtHọc thuyết 2.1: Cách đặt hàng Trường tổng hợp trong bộ sưu tập?

@ORM\OrderBy({"somefield" = "DESC"})

và bộ sưu tập tôi nhận được từ tổ chức đó sẽ được tự động đặt hàng.

Câu hỏi của tôi là liệu có thể sắp xếp theo các trường tổng hợp không?

Vấn đề hiện tại của tôi: Tôi có 2 trường trong thực thể thu: visitedshown, tôi muốn sắp xếp bộ sưu tập theo chỉ mục xếp hạng, là: visited/shown. Tôi đã thử viết nó trong các chú thích, nhưng nó nói nó phải là một trường hợp lệ. Tôi biết làm thế nào để làm điều này với DQL, nhưng tôi không biết làm thế nào để tạo lại nó trong tuyên bố của thực thể với chú thích.

Cảm ơn trước!

Trả lời

1

Bạn cần phép toán trong câu lệnh ORDER BY - trong SQL nó sẽ là ORDER BY đã truy cập/hiển thị DESC. Tôi nghĩ rằng không thể thực hiện trong các chú thích.

3

Không hoàn toàn chắc chắn tôi hiểu vấn đề của bạn. Nhưng những gì hiện

@ORM/OrderBy({"visited" = "DESC", "shown" = "DESC"})

cho kết quả?

Từ http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-orderby:

Các DQL Snippet trong OrderBy chỉ được phép bao gồm không đủ tiêu chuẩn, tên trường không thể viện chứng và của một câu lệnh vị trí ASC/DESC tùy chọn. Nhiều trường được phân tách bằng dấu phẩy (,). Các tên trường được tham chiếu phải tồn tại trên lớp targetEntity của chú thích @ManyToMany hoặc @OneToMany.

+1

Không cần phải thực hiện phép toán trong câu lệnh ORDER BY - trong SQL nó sẽ là 'ORDER BY đã truy cập/hiển thị DESC'. Tôi nghĩ rằng không thể thực hiện trong các chú thích –

+0

tính năng này hoạt động! – coder4show

+0

@ MaciejPyszyński Bạn là chính xác, không thể vào thời điểm này, bạn có thể đăng nó như là một câu trả lời, vì vậy tôi có thể chấp nhận nó? –

Các vấn đề liên quan