[英]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.