gpt4 book ai didi

hibernate - 如何在 hibernate 标准投影中进行划分(column1/column2)

转载 作者:行者123 更新时间:2023-12-02 23:09:55 24 4
gpt4 key购买 nike

我是 Hibernate 新手。我需要在 Hibernate 标准查询中执行 select item.itemName, (item.Qty * item.Price) as Total Price from Item item' 。我试过了,

objCriteria = objSession.createCriteria(ItemVO.class, "IT")
.setProjection(Projections.projectionList()
.add(Projections.property("IT.name"), "itemName")
.add(Projections.sqlProjection("(QTY * cost)", new Float[] {"TotalCost"}, ( new Type[] {Hibernate.Float}))))
.setResultTransformer(Transformers.aliasToBean(ConsumableDTO.class));

但我需要使用 HQL 名称而不是直接 sql 查询列名称。如何实现?

最佳答案

不确定您是否仍然对此感兴趣,但我相信您可以通过在 sqlProjection 中实际放置“sum”关键字来实现此功能。

您的查询将如下所示:

objCriteria = objSession.createCriteria(ItemVO.class, "IT")
.setProjection(Projections.projectionList()
.add(Projections.property("IT.name"), "itemName")
.add(Projections.sqlProjection("sum(QTY * cost)", new Float[] {"TotalCost"}, ( new Type[] {Hibernate.Float}))))
.setResultTransformer(Transformers.aliasToBean(ConsumableDTO.class));

这应该会为每个匹配的项目返回一个 Object[],其中名称位于第一个数组元素中,计算出的“totalCost”位于第二个数组元素中。

关于hibernate - 如何在 hibernate 标准投影中进行划分(column1/column2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com