gpt4 book ai didi

java - jpql 查询中列的别名

转载 作者:行者123 更新时间:2023-11-29 05:13:54 25 4
gpt4 key购买 nike

我在一个使用 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();
}

然后我得到了这个回复..

enter image description here

我想显示 id_game 而不是 O。而不是 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();

这解决了您的问题。

关于java - jpql 查询中列的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com