0

我是 JPA 的新手,并且努力定义我的类之间的关系。我有一个名为 Player 的类和一个名为 Game 的类。一个游戏持有对两个 Player 实例的引用。问题是,这应该如何建模?

这是我当前的代码:

@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();

我认为这没问题,但我的问题出在 Game 类中:

@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;
    }

}

这不起作用,我的表 t_game 只有两个字段;id 和 uuid。我的问题在哪里?

4

1 回答 1

0

删除 PrimaryKeyJoinColumn 注释,因为我认为它不是您要使用的,因为它与 joincolumn 定义冲突。如果需要,请改用 joincolumn 注释来定义外键字段名称和它引用的字段。

于 2013-10-07T03:53:08.130 回答