2011-07-08 36 views
5

Tôi đã gặp phải một vấn đề lớn về phân loại bằng cách sử dụng hiber nhibernate. Tôi có một bảng LICENSE có một thuộc tính USER (tương ứng với một lớp USER) liên kết nó với một bảng USERPROFILE khác. Bảng USERPROFILE có một thuộc tính UserName là nvarchar (chuỗi trong lớp USER). Thuộc tính USER này của LICENSE có thể là null tùy thuộc vào thời điểm LICENSE được gán hay không.Thứ tự NHibernate bằng cách sử dụng CASE

Tôi phải lấy danh sách các giấy phép được lọc được sắp xếp trên thuộc tính USER. Tôi muốn tất cả giấy phép có người dùng rỗng nằm ở cuối danh sách và tất cả giấy phép khác được sắp xếp theo thứ tự bảng chữ cái trên thuộc tính USERNAME của USER. Tôi đã sử dụng truy vấn sau cho điều này:

from License license where <various filters> order by CASE WHEN User IS NULL THEN '0' ELSE User.UserName END" 

Tất cả tôi thoát khỏi truy vấn này là danh sách chỉ giấy phép được chỉ định. Tất cả giấy phép có USER USER không được trả lại. Ai đó có thể giúp tôi ở đây.

Ngoài ra, khi tôi sử dụng "order by CASE KHI người dùng IS THEN '0' ELSE User.UserName END", sau đó chỉ những kết quả đó với người dùng không rỗng xuất hiện, nhưng khi tôi sử dụng "order by CASE WHEN User IS NULL THEN '0' ELSE User.UserProfileId END "hoặc đơn giản là" order by User ", tất cả người dùng đến nhưng thứ tự sắp xếp của họ dựa trên UserProfileId và không phải userName (vì UserProfileId là khóa ngoài). Tôi đã sử dụng phiên bản mới nhất của nhibernate nhưng không thành công.

tôi tự hỏi nếu có thậm chí tồn tại cách nào để làm những gì tôi muốn đạt được ...

+0

Xem xét đọc về định dạng mà stackoverflow sử dụng -http: //stackoverflow.com/editing-help - giúp bài đăng của bạn dễ đọc hơn nhiều và mọi người sẽ có thể/có khả năng giúp đỡ nhiều hơn khi họ có thể dễ dàng đọc được bài đăng của bạn –

Trả lời

0

thử tải phiên bản mới nhất của NHibernate và phiên bản cuối cùng của fluentnhibernate (nếu bạn đang sử dụng nó) sau đó sử dụng truy vấn sau: from License license where order by User.UserName END phiên bản mới của NHibernate đang tham gia trái khi sử dụng đơn đặt hàng

+0

Tôi đã thử phiên bản mới của nh ibernate (và tôi không sử dụng thành thạo). Vẫn còn vấn đề vẫn như cũ. – user835199

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