gpt4 book ai didi

java - 一对多的映射关系和新添加的列

转载 作者:行者123 更新时间:2023-12-02 01:07:05 24 4
gpt4 key购买 nike

我有两个表 Player 和 Match。我需要 Player 和 Match 之间存在 OnetoMany 关系,以便我得到的 JSON 输出如下所示:-

{
id : 1,
name : "Peter",
nationality: "Indian",
matches: [
{
id : 1,
location: "Mohali"
TournamentName: "FA Cup"
},
{
id : 2,
location: "Kolkata"
TournamentName: "ISL league"
}
]
}

您能否建议如何定义注释并获得上述结果?我的代码是这样写的:-

@Entity
public class Match {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="match_id")
private Integer mId;

private String seriesName;

private String location;

@ManyToOne
private Player player;

播放器是这样的:-

@Entity
public class Player {

@Id
@GeneratedValue
@Column(name="player_id")
private Integer pId;

private String pName;

private String cricketTeam;

@OneToMany(mappedBy = "player" ,cascade = CascadeType.ALL)
private List<Match> matches;

除此之外,我还需要在结果 JSON 中添加一个附加属性:-

totalGoals: 8

此属性将计算球员在每场比赛中的进球总数,因此必须有一个新表,其中包含以下列:-“player_id”、“match_id”和“totalGoal”

如果您能提供一个好的方法,将会非常有帮助

最佳答案

对于你的第一个问题,我认为你不需要做任何额外的努力尝试使用 Player 作为 RestController 的返回对象(我更喜欢 DTO 作为像 PlayerDTO 这样的返回对象,因为你可以根据要求进行自定义更改)

@RequestMapping<!--mapping--!>
public ResponseEntity<Player> getPlayer(<expected Params as playerId>)
{
return ResponseEntity.ok(service.find(id));
}

对于第二个问题,您可以在匹配对象本身中维护一个参数totalGoals,除非您有其他要求,否则您不需要另一个映射表

关于java - 一对多的映射关系和新添加的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59872057/

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