[英]JPA / Hibernate OneToOne Null in foreign key
我有以下兩個具有雙向OneToOne關系映射的實體,數據訪問由Hibernate EntityManager v。“3.5.1-Final”提供。
@Entity
@Table(name = "details")
public class Details {
private Long id;
private User user;
public void setUser(User user) {
this.user = user;
}
@OneToOne
@JoinColumn(name="user_id")
public User getUser() {
return user;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
}
和:
@Entity
@Table(name = "users")
public class User {
private Long id;
private Details details;
public void setDetails(Details details) {
this.details = details;
}
@OneToOne(mappedBy="user",cascade=CascadeType.ALL)
public Details getDetails() {
return details;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
}
持久性代碼:
User user = new User();
Details details = new Details();
user.setDetails(details);
entityManager.persist(user);
然后在兩個表中正確插入數據,問題是詳細信息表“user_id”中的FK變為空,不確定這里缺少什么。
你需要添加details.setUser(user).
user.setDetails(details);
僅在User實體中設置外鍵。 @OneToOne
只告訴hibernate如何解釋返回的數據(以及如何獲取 - 使用連接)。 它沒有告訴Hibernate設置哪些外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.