Java 外键中的JPA/Hibernate OneTONE Null

Java 外键中的JPA/Hibernate OneTONE Null,java,hibernate,jpa,Java,Hibernate,Jpa,我有以下两个具有双向OneToOne关系映射的实体,数据访问由Hibernate EntityManager v提供。“3.5.1-最终版本” 以及: 持久性代码: User user = new User(); Details details = new Details(); user.setDetails(details); entityManager.persist(user); 然后将数据正确插入两个表中,问题是详细信息表“user_id”中的FK为空,不确定此处缺少什么。您需要添加

我有以下两个具有双向OneToOne关系映射的实体,数据访问由Hibernate EntityManager v提供。“3.5.1-最终版本”

以及:

持久性代码:

User user = new User();
Details details = new Details();
user.setDetails(details);

entityManager.persist(user);

然后将数据正确插入两个表中,问题是详细信息表“user_id”中的FK为空,不确定此处缺少什么。

您需要添加
详细信息。setUser(user)。

user.setDetails(详细信息)仅在用户实体中设置外键。
@OneToOne
只告诉hibernate如何解释返回的数据(以及如何获取-使用连接)。它不会告诉Hibernate设置哪些外键

@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);