Có vẻ như bạn đang cố gắng sử dụng lại Tiêu chí được thực hiện để nhận danh sách đặt hàng thay vì nhận được số lượng.
Thay vì cố gắng sử dụng cùng một Tiêu chí để truy xuất dữ liệu và để đếm, có lẽ bạn tốt nhất chỉ cần tạo Tiêu chí độc lập.
Sử dụng
Criteria orderCriteria= session.createCriteria(Libro.class)
.addOrder(Order.asc("ID"));
để lấy danh sách theo thứ tự, và sử dụng
Criteria countCriteria= session.createCriteria(Libro.class)
.setProjection(Projections.rowCount());
để có được đếm.
Để sử dụng cùng một Tiêu chí cho hai mục đích, bạn phải thay đổi trạng thái giữa các tập quán. Tôi không chắc chắn làm thế nào để loại bỏ một đơn đặt hàng (hoặc nếu bạn thực sự cần để làm một số). Để xóa một phép chiếu chỉ cần setProjection(null)
.
Nguồn
2010-03-05 05:14:50
Hmm ... tại sao bạn gọi 'addOrder()' nếu bạn không muốn? –
@PascalThivent điểm tốt. Đôi khi bạn có thể được trả về một đối tượng Tiêu chí có thứ tự tích hợp (ví dụ: từ phương thức nhà máy) và bạn có thể muốn xóa thứ tự được xác định trước đó. Đây là lý do tại sao tôi đi vào câu hỏi này. –