1

次のクエリがあります

@Override
public List<PlayerDetails> testPlayerQuerry() {
    return copyPlayersToDetails(em.createNativeQuery("select player_name from player p\n"
            + "join Player_Game pg on p.player_id = pg.fk_player_id\n"
            + "join Game g on pg.fk_game_id = g.game_id\n"
            + "where g.game_id = 2").getResultList());
}

私が知る限り、文字列のリストを返すのはどれですか? 私が得ているエラーのために

原因: java.lang.ClassCastException: utils.SessionFacade.copyPlayersToDetails(SessionFacade.java:105) で java.lang.String をエンティティにキャストできません。

エラーをスローするクラスは、プレーヤー文字列を返すクエリで正常に動作しています。たとえば、プレーヤーから * を返します。

private List<PlayerDetails> copyPlayersToDetails(List< Player> players) {
    List<PlayerDetails> list = new ArrayList<PlayerDetails>();
    Iterator i = players.iterator();
    while (i.hasNext()) {
        Player player = (Player) i.next();
        PlayerDetails details = new PlayerDetails(player.getPlayerId(),
                player.getPlayerName(), player.getPlayerRating());
        list.add(details);
    }
    return list;
}

このメソッドをどのように変換する必要があるか、または (可能であれば) この文字列リストに格納されている値を JSF ページに取得して、クエリ結果を取得できるようにする方法を教えてください。

4

1 に答える 1