簡體   English   中英

Hibernate 一對一映射,外鍵為 NULL

[英]Hibernate One To One mapping, Foreign Key is NULL

這是我第一次嘗試映射一對一關系。 我有以下實體:

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Client {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Size(max = 100)
    private String name;

    @Email(message = "Email should be valid")
    private String email;

    @OneToOne
    @PrimaryKeyJoinColumn
    private Key key;
}

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Key {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(unique = true)
    private UUID number;

    @OneToOne
    private Client client;

    public Key(UUID number) {
        this.number = number;
    }
}

他們沒有看到對方,我在外鍵部分得到 NULL。 在以下帖子中使用 EntityManager 類時有一個解決方案:

JPA / Hibernate OneToOne Null 外鍵

不幸的是,這種方法對我不起作用。

數據庫快照:

數據庫快照

謝謝你的回答!

我們不需要提及@PrimaryKeyJoinColumn注釋。 當我們映射表時,它將創建主鍵和外鍵。 我們只需要正確地映射。
在 Client 模型類中,您必須創建如下映射

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "key_id", referencedColumnName = "id")
    private Key key;

並在這樣的 Key 模型類中

    @OneToOne(mappedBy = "key")
    private Client client;

暫無
暫無

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

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