Hibernate 无法解析路径[Player.playerName_en],意外令牌[Player]
我有这个错误,有人能帮我吗 这是我的stacktrace:Hibernate 无法解析路径[Player.playerName_en],意外令牌[Player],hibernate,spring-mvc,Hibernate,Spring Mvc,我有这个错误,有人能帮我吗 这是我的stacktrace: 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 PlayerTransi
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;
}
这是我的代码:
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;
}
}
`您的HQL查询中有许多错误: 1/您错过了播放器类名后的别名:
from Player as Player
2/您的加入子句左加入首选项\u玩家对玩家。playerId=首选项\u玩家。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;
首选项\玩家是成员和玩家之间的可连接项,因此玩家没有标识符。谢谢您的回答