Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA建模,一对一关系?_Java_Jpa - Fatal编程技术网

Java JPA建模,一对一关系?

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

我是JPA新手,在定义我的类之间的关系时遇到了困难。我有一个叫做Player的类和一个叫做Game的类。一个游戏包含对两个玩家实例的引用。问题是,这应该如何建模

这是我当前的代码:

@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注释来定义外键字段名称及其引用的字段。

您确定要在玩家和游戏之间进行一对一映射吗?是不是应该多对一,这样一个玩家就可以玩很多游戏了?