我有这个错误,任何人都可以帮助我
这是我的堆栈跟踪:
Etat HTTP 500 - Request processing failed; nested exception is org.springframework.orm.hibernate4.HibernateQueryException: Unable to resolve path [Player.playerName_en], unexpected token [Player] [SELECT NEW PlayerTransient .
这是我的代码:
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.getTransaction();
tx.begin();
try {
String sql="SELECT NEW PlayerTransient (Player.playerName_en,Player.playerName_fr,Player.playerName_ar,Player.playerName_Abreviation, Player.playerImage,preference_player.identifier) FROM Player left join preference_player on Player.playerId= preference_player.playerId and preference_player.identifier=Player.identifier";
playerTransients = session.createQuery(sql).list();
tx.commit();
} catch (RuntimeException e) {
tx.rollback();
throw e;
}
return playerTransients;
}
} `
答案 0 :(得分:0)
您的HQL查询中存在许多错误:
1 /你在Player classname:
之后错过了别名from Player as Player
2 /你的加入条款left join preference_player on Player.playerId= preference_player.playerId
不正确你必须把:
left join Player.preference_player // without the on part (which is sql syntax)
这里是完整的查询:
SELECT NEW PlayerTransient (Player.playerName_en,Player.playerName_fr,Player.playerName_ar,Player.playerName_Abreviation, Player.playerImage,preference_player.identifier) FROM Player as Player
left join Player.preference_player where Player.preference_player.identifier=Player.identifier;