无法解析路径[Player.playerName_en],意外令牌[Player]

时间:2017-07-07 13:18:53

标签: hibernate spring-mvc

我有这个错误,任何人都可以帮助我

这是我的堆栈跟踪:

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;
}

} `

1 个答案:

答案 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;