簡體   English   中英

jpql查詢中列的別名

[英]Alias for columns in jpql query

我正在使用Spring Jpa在Restful項目中工作,所以我正在使用@Query注釋。 我想知道如何在查詢中為列設置別名? 因為響應將結果集的每個寄存器顯示為數組0,1,2而不是我想要顯示我想用別名設置的自定義名稱。

這是一些代碼

DaoGameI.java

public interface DaoGameI extends JpaRepository<Game, Integer> {

    @Query("SELECT g.id AS id_game, g.scoreHomeTeam As score_home_team, g.date AS game_date" 
           " FROM Game g "
          )
    public List<Game> allGames();

}

ServiceGame.java

@Autowired
    private DaoJuegoI iGames;

    @RequestMapping(value="/all")
    public @ResponseBody List<Game> all(){
        return iGame.allGames();
    }

然后我收到了這個回復..

在此輸入圖像描述

而不是OI想要顯示id_game。 而不是1我想顯示score_home_team。 而不是2我想顯示日期

希望可以有人幫幫我!

實現此目的的一種方法是定義包含以下三個參數的新對象:

    public class GameResponse{

        private Long id_game;

        private Long score_home_team;

        private Date game_date;

        //All getters and setters
        //Add a  default Constructor
        //And another parameterized constructor
        public GameResponse(Long id, Long score, Date date){
            this.id_game = id;
            this.score_home_team = score;
            this.game_date = date;
        } 
    }

現在修改你的sql @Query為 -

 @Query("SELECT NEW GameResponse(g.id, g.scoreHomeTeam, g.date) FROM Game g")
 public List<Game> allGames();

這解決了您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM