Tôi cần phải sử dụng hàm year() và month() trong API tiêu chí để có thể thể hiện giới hạn bộ lọc doanh nghiệp. Các biểu thức nhưcách sử dụng hàm year() và month() trong API tiêu chí NH?
cri.Add(Expression.Ge("year(Duration.DateFrom)", Year.Value));
cri.Add(Expression.Le("year(Duration.DateTo)", Year.Value));
rõ ràng là không hoạt động - có giải pháp nào để đạt được điều này không?
Tôi biết điều đó hoàn toàn có thể trong HQL, nhưng tôi cần phải xây dựng các truy vấn sử dụng tiêu chuẩn API vì đang có một số quá trình thêm xử lý truy vấn thêm phân loại, phân trang vv ..
mẫu giải pháp HQL đó Tôi muốn viết lại API Tiêu chí:
var ym = year * 100 + month;
var hql = ...(:ym between 100 * year(f.Duration.DateFrom) + month(f.Duration.DateFrom) and 100 * year(f.Duration.DateTo) + month(f.Duration.DateTo)";
này không may là chưa đủ. Dữ liệu nhập của người dùng là năm + tháng và tôi cần trả về tất cả các đối tượng có Thời lượng giao cắt năm + tháng. Giải pháp Simmilar trong HQL trông giống như: var ym = year * 100 + month; var hql = ... (: ym giữa 100 * năm (f.Duration.DateFrom) + tháng (f.Duration.DateFrom) và 100 * year (f.Duration.DateTo) + month (f.Duration.DateTo) "; Tôi không thể tìm ra cách tạo cùng một truy vấn bằng API tiêu chí. – Buthrakaur
để chỉnh sửa: Tôi chỉ kết hợp một năm + tháng. Câu chuyện của người dùng giống như:" hiển thị cho tôi đối tượng có thời lượng Tôi có thể có đối tượng {DateFrom = new DateTime (2008,1,1), DateTo = new DateTime (2222, 1, 2)} và đầu vào của người dùng là "tháng 9 năm 2009" - đề xuất của bạn không hoạt động ở đây . – Buthrakaur