Я пытаюсь объединить 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, но не могу понять где.