我正在使用 Spring Jpa 在 Restful 项目中工作,所以我使用的是 @Query 注释。我想知道如何为查询中的列设置别名?因为响应将结果集的每个寄存器显示为数组 0,1,2 而不是我想显示我想用别名设置的自定义名称。
这是一些代码
道游戏I.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();
}
Run Code Online (Sandbox Code Playgroud)
服务游戏
@Autowired
private DaoJuegoI iGames;
@RequestMapping(value="/all")
public @ResponseBody List<Game> all(){
return iGame.allGames();
}
Run Code Online (Sandbox Code Playgroud)
然后我得到这个回应..

而不是 OI 想要显示 id_game 。而不是 1 我想显示 score_home_team 。而不是 2 我想显示日期
希望可以有人帮帮我!
小智 5
实现此目的的一种方法是定义一个包含以下三个参数的新对象:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在将您的 sql @Query 修改为 -
@Query("SELECT NEW GameResponse(g.id, g.scoreHomeTeam, g.date) FROM Game g")
public List<Game> allGames();
Run Code Online (Sandbox Code Playgroud)
这可以解决您的问题。
| 归档时间: |
|
| 查看次数: |
11064 次 |
| 最近记录: |