Java 保存时Spring-oneToOne关系未设置FK

Java 保存时Spring-oneToOne关系未设置FK,java,spring,spring-boot,hibernate,jpa,Java,Spring,Spring Boot,Hibernate,Jpa,这是我的代码: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; @OneToOne(mappedBy = "user", cascade = CascadeType.AL

这是我的代码:

@Entity
public class User {

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

    private String username;

    private String password;

    @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER, optional = false)
    private Employee employee;

    public User() {
    }

    //SETTERS AND GETER
    
}

@Entity
public class Employee {

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

    private String name;

    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id")
    private User user;

    public Employee() {
    }
    
    //SETTERS AND GETER

}
在我的服务中,我正在尝试这样的事情:

    User user = new User();
    user.setUsername("my_username");
    user.setPassword("12345");

    Employee employee = new Employee();
    employee.setName("My Name");
    employee.setBirth(LocalDate.now());

    user.setEmployee(employee);

    userService.save(user);

应用程序上没有错误,也没有任何问题,但在我的数据库中,user\u id列是空的,我该如何使用user id自动设置user\u id?提前谢谢

正如hibernate中所述:

每当形成双向关联时,应用程序开发人员必须确保双方始终同步

您使用双向
@OneToOne
,因此,您应该同步关联的两侧:

User User=新用户();
user.setUsername(“我的用户名”);
user.setPassword(“12345”);
员工=新员工();
employee.setName(“我的名字”);
employee.setBirth(LocalDate.now());
//使双向@OneToOne的两侧同步
user.setEmployee(employee);
employee.setUser(用户);
userService.save(用户);

您的代码应该可以工作。您确定您的数据库ID设置为自动递增(或顺序)吗?