Java JPA建模,一对一关系?
我是JPA新手,在定义我的类之间的关系时遇到了困难。我有一个叫做Player的类和一个叫做Game的类。一个游戏包含对两个玩家实例的引用。问题是,这应该如何建模 这是我当前的代码:Java JPA建模,一对一关系?,java,jpa,Java,Jpa,我是JPA新手,在定义我的类之间的关系时遇到了困难。我有一个叫做Player的类和一个叫做Game的类。一个游戏包含对两个玩家实例的引用。问题是,这应该如何建模 这是我当前的代码: @Entity @Table(name = "t_player") @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) public class Player { @Id @GeneratedValue(strategy = Genera
@Entity
@Table(name = "t_player")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Player {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Basic
@Column(name = "name")
private String name;
@Basic
@Column(name = "uuid")
private final String uuid = UUID.randomUUID().toString();
我认为这没关系,但我的问题是在游戏课上:
@Entity
@Table(name = "t_game")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Game {
public Game() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Basic
@Column(name = "uuid")
private final String uuid = UUID.randomUUID().toString();
@OneToOne
@PrimaryKeyJoinColumn
@JoinColumn(name = "id")
private Player player_1;
@OneToOne
@PrimaryKeyJoinColumn
@JoinColumn(name = "player_2")
private Player player_2;
public Game(Player player_1, Player player_2) {
this.player_1 = player_1;
this.player_2 = player_2;
}
}
这不起作用,我的桌面游戏只有两个字段;id和uuid。我的问题在哪里?删除PrimaryKeyJoinColumn注释,因为我认为它不是您想要使用的,因为它与joincolumn定义冲突。如有必要,使用joincolumn注释来定义外键字段名称及其引用的字段。您确定要在玩家和游戏之间进行一对一映射吗?是不是应该多对一,这样一个玩家就可以玩很多游戏了?