一对多案例中的HQL查询问题

时间:2014-04-29 08:46:38

标签: java sql hibernate hql

我有一个表用户和另一个名为Transactiopn的表。一个用户有多个交易。我正在尝试编写一个HQL来获取所有用户及其最新交易的列表。

我该怎么写?最新交易是指最大值为id的那个。

如果我写的话

select name, transaction.amount from Users

我收到错误

使用元素属性引用非法尝试取消引用集合[{synthetic-alias} {non-qualified-property-ref} trIP属性

这是因为transaction是User表中的列表。我需要从用户本身中进行选择,因为还有其他相关的引用列。那么如何获取最后一笔交易金额呢?

如果有人可以帮助我,我可以尝试翻译正常的SQL查询。

1 个答案:

答案 0 :(得分:0)

JPA规范声明select子句不能包含集合值属性。你得到的错误反映了这一点。

要选择集合的内容,请在查询中引入id变量:

select u.name, tr.amount from Users u JOIN u.transactions tr