java - 复合用户类型的聚合函数

标签 java hibernate

我有一个代表货币金额的复合用户类型。这种类型跨越两列。

-Amount
-Currency

当我创建一个 HQL 查询,该查询使用此复合用户类型对属性执行聚合函数(如“avg”)时,抛出异常。原因似乎是 AvgFunction 不能对具有多列的类型进行操作。

有什么方法可以在聚合函数中使用 CompositeUserType 吗?

提前致谢并致以最诚挚的问候
斯塔西斯·亚历克索普洛斯

最佳答案

您的查询没有多大意义。这三行的平均值是多少?

amount    currency
5         USD
10        EUR
15        YEN

您可以计算金额的平均值并忽略货币:

select avg(bill.fullAmount.amount) from BillBean as bill

但您不能计算货币金额的平均值(即元组 [金额,货币])。

关于java - 复合用户类型的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6558582/

相关文章:

java - Maven - 如何使用本地文件夹中的 Artifact ?

java - 为什么我不能从 Java 中的专用枚举值访问静态最终成员

java - 从 vector 或数组创建动态形式

java - 无法在 Spring 中使用 JPA 保持多对一关系(改为添加新的父实体)

java - Hibernate @Filter 不适用于 Spring JpaRepository.findById 方法

java - 每个 Namedcache 的 Coherence 分布式缓存过期

java - P6Spy 不使用 HSQLDB 记录 hibernate 更新

java - 如何创建一个 Vector,其中每个条目都是一个具有 2 个字段的结构

java - Spring TransactionalTemplate 不会在异常时回滚

java - 在 Activity 之间传递 "preference variable",在原始 Activity 中设置值