【发布时间】:2015-10-23 00:32:08
【问题描述】:
我有一个 JPQL 查询,它返回没有聚合的结果
public List<Transaction> getProjTransactionsByParametersId(Long id){
StringBuilder sb = new StringBuilder("FROM Transaction AS t WHERE t.account.id = :id and status = 0");
Query q = em.createQuery(sb.toString(), Transaction.class)
.setParameter("id", id);
List<Transaction> projTransactions = q.getResultList();
return projTransactions;
}
如何在此处合并 group by?我想要类似的东西:
public List<Transaction> getProjTransactionsByParametersId(Long id){
StringBuilder sb = new StringBuilder("SELECT sum(t.amount), t.valueDate FROM Transaction AS t WHERE t.account.id = :id and status = 0 GROUP BY t.valueDate");
Query q = em.createQuery(sb.toString(), Transaction.class)
.setParameter("id", id);
List<Transaction> projTransactions = q.getResultList();
return projTransactions;
}
在这种情况下,我是否必须在 Transaction 映射中为 sum 聚合创建一些新字段?我读过其他来源的文献,但我不懂逻辑。
例如,对于映射中的 valueDate,我有 getter,它将其值返回到我的表中。这个聚合列呢?
【问题讨论】:
标签: hibernate jpa hibernate-mapping jpql