当前位置: 首页 > 面试题库 >

HQL的新对象

李光华
2023-03-14
问题内容

试图从HQL查询创建对象,但无法弄清楚我在做什么错。

查询:

String query = "SELECT product.code, SUM(product.price), COUNT(product.code)
from Product AS product
GROUP BY product.code"

(或者我应该使用新的MyCustomList(product.code,SUM(…,即使未映射)?)现在我想将此返回的列表转换为类似的对象:

class MyCustomList{
  public String code;
  public BigDecimal price;
  public int total;

  // Constructor
  public MyCustomList(String code, String price, int total){ //...

检索数据:

// This throws ClassCastException    
List<MyCustomList> list = MyClass.find(query).fetch();

使用Play框架


问题答案:

我认为第15.6节。select子句涵盖您要实现的目标:

15.6。选择子句

查询可以将多个对象和/或属性作为类型数组返回 Object[]

select mother, offspr, mate.name
from DomesticCat as mother
    inner join mother.mate as mate
    left outer join mother.kittens as offspr

或作为List

select new list(mother, offspr, mate.name)
from DomesticCat as mother
    inner join mother.mate as mate
    left outer join mother.kittens as offspr

或者-假设该类Family 具有适当的构造函数-作为实际的类型安全的Java对象:

select new Family(mother, mate, offspr)
from DomesticCat as mother
    join mother.mate as mate
    left join mother.kittens as offspr

就您而言,您可能想要:

SELECT new MyCustomList(product.code, SUM(product.price), COUNT(product.code))
from Product AS product
GROUP BY product.code

在哪里MyCustomList不一定是映射实体。



 类似资料:
  • 问题内容: 我知道这个问题已经提出了很多,但是我似乎遇到了另一个问题。我看到Hibernate 中有一个bug,它与SumFunction忽略了自定义用户类型有关,但是据我所知,我没有使用自定义用户类型。我基本上是在尝试创建一个新对象,该对象是现有映射bean的汇总,但是我收到了针对某些Hibernate方言函数的。我尝试将Double和BigDecimal都用作字段类型,但在部署时都向我提供了相

  • 问题内容: 我知道这个问题已经提出了很多,但是我似乎遇到了一个不同的问题。我看到Hibernate中有一个错误,该错误与SumFunction忽略了自定义用户类型有关,但据我所知,我没有使用自定义用户类型。我基本上是试图创建一个新对象,该对象是现有映射bean的汇总,但是我收到了针对某些Hibernate方言函数的。我尝试将Double和BigDecimal都用作字段类型,但在部署时都向我提供了相

  • 我有一个场景,下面是超类:- 我正在使用每子类表策略使用一个鉴别器下面是容器的hbm映射:- 下面是FieldParent的hbm映射:- java.sql.SqlSyntaxerRoreXception:ora-00904:“FieldParent1_3_”.“TypeOFSub”:无效标识符

  • 问题内容: 我有如下所示的Hibernate域对象: 我需要构造一个HQL查询,该查询会向我返回所有至少具有一项附有标记并附有结界的物品的所有玩家的列表。我无法终生想出一种用HQL来表达这一点的方法。 有任何想法吗? 问题答案: 假设以上所有条件都适当,则您要查找的查询是:

  • 问题内容: 我已经完成了Hibernate的实现,这是与更新功能相关的代码。 我收到这个例外 Hibernate.cfg.xml 这是什么, 查询必须以SELECT或FROM开头:update ?需要一些帮助? 问题答案: 在配置文件中,更改属性值 从 至 查看更多forum.hibernate.org 边注 使用方法传递参数进行查询

  • 问题内容: 我在Hibernate中具有以下一对一关系(可能为null): 我正在尝试使用HQL选择所有具有非空详细信息的实体: 但这会返回所有实体,无论详细信息是否为空。 那么正确的HQL是什么? 问题答案: 好的,我找到了解决方案: