Có cách nào để sử dụng kết quả ICriteria làm 'cơ sở' cho truy vấn tiêu chí tiếp theo không?Thực hiện tiêu chí nHibernate trên kết quả của truy vấn khác (hai truy vấn khác biệt)
Ví dụ nếu tôi muốn tạo ra một truy vấn
SELECT department_id, sum(cost) AS total
FROM payment
GROUP BY payment.department_id
lưu trữ kết quả như query0
, và sau đó thực hiện các truy vấn
SELECT department.name, total
FROM department, query0
JOIN LEFT ON department.id=query0.id
WHERE total > 3
Tôi không muốn có một truy vấn khổng lồ duy nhất thực hiện tất cả cùng một lúc (đó sẽ là kết quả của việc tạo một ICriteria với truy vấn phụ). Lưu ý rằng tôi có một lựa chọn/hạn chế trên kết quả của truy vấn đầu tiên và đồng thời bao gồm một trong các cột của nó trong phép chiếu của truy vấn thứ hai.
Tiêu chí được tạo động bằng chuỗi để xác định các lớp.
Im không familir với ICriteria, nhưng couldnt truy vấn đầu tiên phân phát dưới dạng cơ sở hoặc rootquery và sau đó quấn một lựa chọn mới xung quanh nó ?? –
Có lẽ bạn chỉ nên lọc các bộ phận của truy vấn của bạn0 với tổng số> 3 và sau đó nhận được các điểm khởi hành với mệnh đề IN trong truy vấn thứ hai của bạn. Bài đăng đẹp từ Ayende về vấn đề này khi danh sách IN thực sự lớn: http://ayende.com/blog/2583/nhibernates-xml-in cũng như liên kết không bị hỏng tới mã XmlIn.cs: http: //. google.com/p/hornget/source/browse/trunk/package_tree/frameworks/rhino.tools/rhino/patch/commons/Rhino.Commons.NHibernate/NHibernate/XmlIn.cs?spec=svn78&r=78 – jbl
@Kay Nelson Điều này chính xác là cách tiếp cận của các tiêu chí tách rời với một truy vấn được kết hợp, nhưng duy nhất. @ jbl Tôi vẫn cần tổng số trong chiếu. Và giải pháp này sẽ chỉ hoạt động trong trường hợp cụ thể này (ví dụ: nếu không tham gia vượt quá 'department.id = query0.id AND department.XYZ == query0.XYZ') – Dani