Я использую собственный SQL-запрос, в котором у меня есть таблица игроков, к которой я присоединяюсь три раза, сначала для получения имени игрока с битой, затем для получения имени боулера, а затем для получения имени полевого игрока. Теперь первое соединение работает, но следующие два также возвращают одно и то же имя, то есть имя игрока с битой.
Вот SQL-запрос
select
del.over_no,
del.delivery_no,
batsman.sname,
outType.name,
outBy.sname,
fielder.sname,
bep.runs,
bep.deliveries,
bep.fours,
bep.sixes
from delivery del
INNER JOIN batsman_performance bep ON del.innings_id=bep.innings_id
INNER JOIN ref_player batsman ON del.batsman_id = batsman.id
INNER JOIN ref_player outBy ON del.bowler_id = outBy.id
LEFT OUTER JOIN ref_player fielder ON del.fielder_id1= fielder.id
INNER JOIN ref_out_type outType ON del.out_type_id=outType.id
and del.out_type_id IS NOT NULL
and del.innings_id=:innings_id
and bep.player_id = del.batsman_id
order by over_no, delivery_no;
Я не использую псевдонимы для выбранных столбцов, потому что когда я это делал, hibernate вызывал исключение для любого столбца, для которого я использую псевдоним
Request processing failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query] with root cause java.sql.SQLException: Column 'over_no' not found.
Этот запрос работает, когда я запускаю его на моем клиенте mysql и возвращает правильный набор данных, но когда я запускаю его в своем коде, набор результатов каким-то образом переопределяет два последовательных соединения в таблице игрока ref _, оставляя меня с именем игрока с битой в все три столбца, то есть одно и то же имя в столбцах batsman.sname, outBy.sname и fielder.sname.
Я застрял здесь в течение последних двух дней, пожалуйста, любая помощь будет отличной.