gpt4 book ai didi

java - 数据库的对象映射 JPA/openEJB

转载 作者:行者123 更新时间:2023-11-29 12:31:57 25 4
gpt4 key购买 nike

大家好,我正在尝试让我的类(class)保留到我的数据库中,但是我遇到了一个问题,我不确定如何解决。我正在尝试将 Score 的三个实例与我的用户映射,但我不确定如何让它发挥作用。任何帮助表示赞赏。谢谢:)

用户类 Snipit。

@Column(name="userName", unique=true)
private String username;
@Column(name="password")
private String password;

//I am not sure how to map the three fields below.
private Score highestScore;
private Score averageScore;
private Score lowestScore;

最佳答案

虽然这里有一个公认的答案,但我没有看到建议的映射如何区分高分、低分和平均分?

您可以考虑使用如下所示的映射,其中分数表将有一个列“score_type”,可以映射到枚举“ScoreType”:

public class User{  

@Column(name="userName", unique=true)
private String username;

@Column(name="password")
private String password;

@OneToMany
@MapKeyColumn(name="score_type")
@MapKeyEnumerated
private Map<ScoreType, Score> scores;

public Score getHighScore(){
return scores.get(ScoreType.HIGH);
}

public void setScore(Score score){
score.setUser(this);
scores.put(score.getType(), score);
}
}

public class Score{

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

@Column(name = "type")
@Enumerated(EnumType.String)//or ordinal
private ScoreType type;
}

关于java - 数据库的对象映射 JPA/openEJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354321/

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