Я работаю в проекте Restful с Spring Jpa, поэтому я использую аннотацию @Query. Мне было интересно, как я могу задать псевдонимы для столбцов в моем запросе? потому что ответ отображает каждый регистр resulset как массив 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();
Это решает вашу проблему.