Tôi đang cố gắng để có được một báo cáo bằng cách sử dụng tiêu chí và ProjectionList, và tôi là khá mới bằng cách sử dụng này thông qua ngủ đông. Vì vậy, tôi có mô hình này:Nhóm theo tháng với tiêu chí trong Hibernate
private Long _userId;
private Category _category;
private Long _companyId;
private Double _amount;
private Date _date;
Và tôi xây dựng các truy vấn sử dụng này:
public List sumPaymentsByUserCategoryPeriod(Category category, Long userId,Integer period){
GregorianCalendar from = new GregorianCalendar();
from.add(Calendar.MONTH, -period);
List<CategoryAmount> resultDTO= new ArrayList<CategoryAmount>();
Criteria criteria = getSession().createCriteria(Payment.class);
criteria.add(Restrictions.eq("_category", category));
criteria.add(Restrictions.eq("_userId",userId));
criteria.add(Restrictions.between("_date", from.getTime(), new Date()));
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.sum("_amount"));
projectionList.add(Projections.groupProperty("_date"));
criteria.setProjection(projectionList);
return criteria.list();
}
Về cơ bản phương pháp này nhận được một loại và một userId để lọc các khoản thanh toán sổ sách và một thời gian, những người sẽ chỉ ra bao nhiêu tháng kể từ bây giờ trở lại tôi muốn tổng hợp. Làm thế nào tôi có thể nhận được kết quả tổng hợp theo tháng?
Bất kỳ trợ giúp hoặc mẹo nào tôi sẽ đánh giá cao!
Làm thế nào để xử lý DB khác nhau? chẳng hạn như MSSQL và Oracle? khi Oracle sử dụng to_char và mssql use weeknum ... – zolibra