0

私は JPA を初めて使用し、クラス間の関係を定義することに苦労しています。Player というクラスと Game というクラスがあります。ゲームは 2 つの 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 には 2 つのフィールドしかありません。id と uuid。私の問題はどこですか?

4

1 に答える 1

0

joincolumn 定義と競合するため、PrimaryKeyJoinColumn 注釈を削除します。使用するつもりだったとは思わないためです。代わりに joincolumn アノテーションを使用して、外部キー フィールド名と、必要に応じて参照するフィールドを定義します。

于 2013-10-07T03:53:08.130 に答える