Hibernate Query, возвращающий повторяющиеся результаты - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь объединить 3 таблицы, чтобы получить вывод. Ниже приведены таблицы

player_match (match_id, team_id, player_id)

игрок (player_id, имя, ......)

команда (team_id, имя ......)

Всем таблицам присвоены эквивалентные классы.

Ниже приводится запрос SQL, который я выполняю и получаю правильные результаты.

select * from player_match M 
  inner join team T 
    on M.team_id = T.team_id
  inner join player P 
    on P.player_id = M.player_id
  where M.match_id = 335987;

Я выполняю следующий Именованный запрос в классе PlayerMatch Java. Класс PlayerMatch содержит объекты Match и Team. Оба этих объекта отображаются @ ManyToOne.

@NamedQuery(name="getMatchData",query="select PM from PlayerMatch PM "
            + "inner join Team T on PM.teamId = T.teamId "
            + "inner join Player P on PM.playerId = P.playerId "
            + "where PM.matchId = :matchID")

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

SQL-запрос, о котором я упоминал выше, возвращает 22 неповторяющихся строки.

Я думаю, что где-то запутался в запросе Hibernate, но не могу понять где.

1 Ответ

0 голосов
/ 02 мая 2018

Ваш HQL-запрос структурирован аналогично SQL-запросу. Вам не нужно указывать условия «on», так как они получены из схемы гибернации.

См. Документацию по hibernate для получения дополнительной информации о соединениях hql: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...