[英]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.