【发布时间】:2014-09-03 15:52:22
【问题描述】:
我需要编写一个条件查询来检索由特定date 分组的amount 列的总和。我的意思是表由以下列组成:
id partner_id amount date platform_id
serial integer numeric(13.4) timestamp integer
Hibernate 映射按以下方式进行:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@ManyToOne(targetEntity = Partner.class, fetch = FetchType.EAGER)
@JoinColumn(name="partner_id")
private Partner partner;
@Column(name = "amount")
private BigDecimal amount;
@Column(name = "date")
private Date date;
@ManyToOne(targetEntity = Platform.class, fetch = FetchType.EAGER)
@JoinColumn(name="platform_id")
private Platform platform;
我编写了以下查询:
Criteria criteria = getSession().createCriteria(DailyProfit.class)
.add(Restrictions.eq("partner", partner))
.add(Restrictions.eq("platform", platform))
.add(Restrictions.between("date", from, to));
criteria.setProjection(Projections.groupProperty("date"));
criteria.setProjection(Projections.sum("amount").as("DailySum"));
但是criteria.list() 返回[1119950.8300, null, null, null, null, null, null, null, null, null]。这绝对不是我所期望的。你能解释一下这个结果并帮助我修复条件查询吗?
【问题讨论】: