2009-10-21 3 views
0

мне нужно написать HQL сделать следующее ...Hibernate HQL запрос - сложный

У меня есть 3 таблицы: клуб, команда и игры (имена столбцов ниже)

= школа = -id (рк) -name

= Команда = -id (рк) -name -club_id (FK)

= Игра = -id (рк) -opposition -homeScore -awayScore -team_id (Ф.К.)

нужно выбрать последние 20 игр играли в течение определенного клуба ...

что-то вроде: «выбрать последние 20 игр из всех команд которые принадлежат клубу X "

Кто-нибудь знает, как я мог это сделать в HQL?

Спасибо.

+0

С ICriteria должно быть проще, чем с HQL. Было что-то похожее. Взломали его вместе без глубоких знаний - не могут помочь. :) –

+0

Структура таблицы не имеет большого значения, когда вы имеете дело с HQL. Можете ли вы разместить свои сопоставления вместо этого? Является ли командно-игровые отношения двунаправленными? То же самое для школьной команды? – ChssPly76

ответ

0

это идет что-то вроде (непроверенные):

select g from teams t join t.games g where t.club = :club 
    order by g.date 

Для того, чтобы ограничить результат первого 20

session.createQuery(theQuery) 
    .setEntity('club',club) 
    .setMaxResults(20) 
    .list(); 

Неприятности с HQL в том, что он действительно должен был написать его с вне фактически имея возможность запускать материал.

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