当前位置: 首页 > 知识库问答 >
问题:

在JPQL中获取类

章茂
2023-03-14

有一个JPQL查询,它列出类别名称、项目名称等,如下所示。

        String jpql = "select c.name, i.name, count(bi.bill), sum(bf.feeValue), bf.fee.feeType "
            + " from BillFee bf join bf.billItem bi join bi.item i join i.category c  "
            + " where bi.bill.institution=:ins "
            + " and bi.item.department.institution=:ins "
            + " and  bi.bill.billType= :bTp  "
            + " and  bi.bill.createdAt between :fromDate and :toDate "
            + " and (bi.bill.paymentMethod = :pm1 "
            + " or  bi.bill.paymentMethod = :pm2 "
            + " or  bi.bill.paymentMethod = :pm3 "
            + " or  bi.bill.paymentMethod = :pm4)"
            + " group by i.name, c.name, bf.fee.feeType "
            + " order by c.name, i.name, bf.fee.feeType";

    temMap.put("toDate", toDate);
    temMap.put("fromDate", fromDate);
    temMap.put("ins", institution);
    temMap.put("bTp", BillType.OpdBill);
    temMap.put("pm1", PaymentMethod.Cash);
    temMap.put("pm2", PaymentMethod.Card);
    temMap.put("pm3", PaymentMethod.Cheque);
    temMap.put("pm4", PaymentMethod.Slip);

    List<Object[]> lobjs = getBillFacade().findAggregates(jpql, temMap, TemporalType.TIMESTAMP);

我想按类分组,并在select语句中获取类。这可能吗?

共有1个答案

乐正辰阳
2023-03-14

如果您有鉴别器列,那么这是可能的。

假设您的鉴别器列是string字段,名为dtype。您应该向您的实体添加

@Column(name = "DTYPE")
private String clazz;
// ..
// getter

现在您可以在JPQL查询中使用它:

String jpql = "select c.name, i.name, bill.clazz // .. rest of the query
 类似资料:
  • 我正在编写一个JPQL查询(Hibernate是我的JPA提供程序),以获取一个实体及其几个关联。这适用于我的“简单”的许多关联,比如: Hibernate创建一个查询来获取上述内容,这很好。然而,我的实体也与存储在中间表中的数据有多对多关联,因此这被映射为三个实体之间的和关联。 公司介绍 这是我代码中的三个实体。因此,一个实例有一组实体,每个实体都与一个实例有关系。我希望这是有意义的——否则请检

  • 如何在执行jpql查询后更新记录数,如

  • 我刚刚意识到,当任何参数为null时,JPQL where子句都不能像我预期的那样工作。例如,这个简单的JPQL查询 当参数为null时不返回任何结果,即使数据库中存在名称设置为null的实体。 在这种情况下,Hibernate使用WHERE实体执行SQL。名称=空。显然,这不是由数据库处理的,因为对于空比较,标准定义为NULL(请参见SQL is NULL and=NULL)。JPQL还有一个

  • 本章将介绍JPQL及其如何与持久性单元一起使用。 在本章中,示例遵循相同的包层次结构,我们在前一章中使用了如下所示: Java持久性查询语言 JPQL是JPA规范中定义的Java持久性查询语言。 它用于创建针对要存储在关系数据库中的实体的查询。 JPQL是基于SQL语法开发的。 但它不会直接影响数据库。 JPQL可以使用SELECT子句检索信息或数据,可以使用UPDATE子句和DELETE子句进行

  • 问题内容: 这是我的问题。 HTML结构: 我不能有与和相关的ID /类别 我需要的是单击“单击我”,然后将其隐藏。我需要一个jQuery解决方案。有些我无法使用。 功能: 但是这个说法给我一个错误。 问题答案: 注意:我不建议在控制器中使用dom操作,您可以编写指令来执行此操作。也就是说,您可以使用获取事件对象,从中可以获取事件目标并将其与jquery一起使用。 和 演示:柱塞 更新 一个更合适

  • 问题内容: 一直试图获取SCOPE_IDENTITY()(最后一个插入到DB中的ID)并将其作为变量存储在我的PHP函数中。 这是我目前拥有的: 我做错了什么? 编辑: 另外…在构造中,我试图在$ this-> post中传递ID($ this-> Id),但它返回0。我可以看到这是由于我只设置了$查询通过后this-> Id,因此返回0,但我不确定如何继续。有什么建议? 问题答案: 首先,您的问