簡體   English   中英

JPA建模,一對一關系?

[英]JPA modelling, one-to-one relation?

我是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。 我的問題在哪里?

刪除PrimaryKeyJoinColumn注釋,因為我認為這不是您要使用的注釋,因為它與joincolumn定義沖突。 改用joincolumn批注定義外鍵字段名及其引用的字段(如有必要)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM