实体识别变量上的MAX聚合有什么作用?

时间:2015-05-11 18:40:46

标签: java hibernate jpa jpql

我正在尝试将使用JPA 1.0和Hibernate 3.3(是的,真的旧)的旧代码迁移到不同的(非SQL)数据API。其中一个查询看起来像这样:

SELECT tx.transactionId, MAX(tx), SUM(tx.amount)
  FROM Transaction tx
  WHERE tx.customerId = :customerId
  AND ... // etc
  GROUP BY tx.transactionId

我的问题: MAX(tx)的结果应该是什么?我看到的所有文档都声称MAX仅对可比较的标量值有效(数字,字符串,日期),而不是实体引用。从上下文来看,查询实际上返回Transaction的实例,但我不知道这些实例是什么(特定的持久化实体?某种类型的复合实体?)或它们与分组结果集的关系。

这是规范的一些Hibernate扩展吗?我在Hibernate文档中也找不到任何东西,而且我无法在Hibernate源代码中找到处理该特定行为的代码。我实际上并不关心(因为我必须以不同的方式重写整个电话),我只是想知道更换应该做什么。

有人认识到这一点吗?

0 个答案:

没有答案