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

Hibernate结果列表强制转换以获取行

爱唯
2023-03-14
queryContent = "select distinct c.identity, c.number, c.status, ctr.name, aab.paymentConditions.currency       from AgreementStateBean ast       join ast.currentAgreement aab       join conagr.contract c  where c.agreementStateId = ?   and con.mainContractor = true ? "

我必须和整个AAB,付款条件,货币,检查法规和姓名的号码。

我想通过迭代结果列表来实现这一点:

    Query q = session.createQuery(queryContent); 
    List result = q.list();
    Long wholeCurrency, numberOfStatutes;

    for(Object res : result){
        //wholeCurrency += res.getColumnName?
    }

我的问题是如何强制转换res对象才能获得具体的列值?我读过关于在hibernate查询中创建映射的文章,但我不知道通过添加

   "new map(" prefix and then ")" 
"select new map( distinct c.identity, c.number, c.status as status, ctr.name as name, aab.paymentConditions.currency as currency  )    from AgreementStateBean ast       join ast.currentAgreement aab       join conagr.contract c  where c.agreementStateId = ?   and con.mainContractor = true ? "
new List( select... 

共有1个答案

有宏峻
2023-03-14

如果我理解正确的话,您希望有一个结果的类型化表示,而不是它本身是一个实体。为此,可以使用构造函数查询:

"SELECT NEW com.example.MyClass( e.name, e.data) FROM Entity e"

MyClass必须有一个匹配的构造函数。完全限定(com.example)不是AFAIK的强制要求。

如果您经常使用此查询,那么在数据库中创建一个视图可能是个好主意。您可以将视图映射到实体,就像它是一个常规表一样,但请注意,您不能通过映射的视图存储对数据的更改。

Edit:事实证明,Hibernate可以映射到一个未指定的映射:

 类似资料:
  • 问题内容: 我的DAO中有一个hibernate的呼叫,看起来像这样 我收到一条错误消息,说我无法将结果列表转换为模型类型“关联”。我不明白为什么会这样。我只返回关联表中的字段。 问题答案: 您需要使用来指定要转换为结果的实体类,因为您正在执行对实体一无所知的SQL查询: 也可以看看: 18.1.2。实体查询

  • 我正在使用hibernate 4和Spring 3。 我有5个表,每个表映射一个实体类。现在,如果我必须从1个表中选择列,我将执行以下操作: 此结果中的此值将为EmployeeEntity类型。 或者我也可以使用标准。 现在我的要求是我必须从所有5个表中得到结果。每个表中有1-2列。 早些时候,它是一个1表,所以我得到了一个实体,现在我得到了5个表的结果,所以如何在实体中映射它。 List res

  • 问题内容: 我的存储过程: 在我的C#代码中 有人可以告诉我我做错了什么吗?谢谢你。 问题答案: 我的猜测是,该值将以而不是装箱返回。取消装箱时,类型必须 完全 正确。因此,假设我是对的,但事实并非如此,您可以使用: 它会工作。不过,这很丑陋。如果真正使用单精度值, 则 使用它应该正确,而且(IMO)情况更清楚。 __ 另一方面,您的数据 实际上 可能以的形式从数据库中返回,在这种情况下,您应该(

  • 尽管问题很熟悉,但我的问题有点奇怪。 这是我的POJO:

  • 假设代码是用c11编译的,并且启用了严格别名。 我不是在寻找一种不同的方法,我想专注于这个具体的问题,以及它是否可行或为什么不可行。 (如果我无意中犯了一些无关的错误,请告诉我,我会改正的) C11标准说: 6.2.5.28所有指向结构类型的指针应具有彼此相同的表示和对齐要求。 6.7.2.1.6结构是由成员序列组成的类型,其存储按有序顺序分配 这意味着结构A和B中指针的大小和对齐方式相同。 结构