2014-04-29 1 views
0

У меня есть таблица «Пользователи» и другая таблица Transactiopn. Один пользователь имеет несколько транзакций. Я пытаюсь написать HQL, чтобы получить список всех пользователей и его последнюю транзакцию.Проблема с запросом HQL в случае одного для многих

Как это написать? Последняя транзакция означает ту, которая имеет максимальное значение id.

Если я пишу что-то вроде

select name, transaction.amount from Users 

Я получаю сообщение об ошибке

незаконной попыткой сбора разыменовывания [{синтетические алиас_базы_данных} {неквалифицированные-свойство-исх} TRIP Атрибут] с элементом ссылка на объект

Это потому, что транзакция представляет собой список в таблице пользователя. Мне нужно выбрать из самих пользователей, так как есть другие связанные ссылочные столбцы. Итак, как мне взять последнюю сумму транзакции?

Я могу попытаться перевести обычный SQL-запрос, если кто-то может мне помочь.

ответ

0

Спецификация JPA заявляет, что предложение select не может содержать атрибуты, основанные на коллекции. Ошибка, которую вы получаете, отражает это.

Чтобы выбрать содержимое коллекции, ввести идентификатор переменной для запроса:

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

+0

, где я могу использовать атрибут ID.? –

+0

'tr' - это переменная id для коллекции транзакций, например' u' для пользователей – kostja

Смежные вопросы